Wie führe ich ein Skript mit ssh login aus und ein anderes Skript, nachdem das erste beendet wurde?

894
Di36o

Ich versuche ein Skript / Shell auszuführen, nachdem ich mich mit einem "guestUser" über ssh an meinem Host angemeldet habe. Die Mission dieses Benutzers besteht darin, über ssh eine Verbindung zu einem anderen Remote-Host herzustellen. Ich habe diesen Benutzer auf meinem Host erstellt:

guestUser:x:1234:1234::/home/guest:/bin/bash 

Dann habe ich im guest-Verzeichnis eine .bashrcDatei, in der ich Folgendes hinzufüge : ( Linux: Wie führe ich beim SSH-Login automatisch Befehle aus? ):

if[[ -n $SSH_CONNECTION ]] ; then ssh 192.198.1.99 fi 

Ich habe dies getan, weil ich in diesem Schritt "guestUser" sshUserInRemoteTwo und sshUserPasswordInRemoteTwo einführen muss. Es funktioniert nicht. Das Skript versucht, "guestUser" remoteHostTwoals "guestUser" zu protokollieren. Dies ist nicht das Ziel. Ich brauche das Skript und fordert Benutzer / Passwort an.

Wenn es funktioniert: Skript fragt nach Benutzer / Passwort und korrektem Anmelden am zweiten Host. Sobald die SHH-Verbindung mit dem zweiten Host abgeschlossen ist, ist guestUser mein Host offline. da im Moment die SSH-Verbindung beendet ist und der Benutzer auf meinem Host bleibt.

0

2 Antworten auf die Frage

0
krowe

Versuchen:

ssh <username>@192.198.1.99 

Oder:

ssh -l <username> 192.198.1.99 

Ersetzen Sie einfach die Zeile in Ihrem .bashrc-Snippet mit einem dieser Formulare.

Sobald Sie sich anmelden, werden Sie nach einem Kennwort für diese Verbindung gefragt. Möglicherweise möchten Sie dieses Kennwort mit einem kennwortlosen Login entfernen .

Mann ssh

ok und was ist, wenn diese Verbindung beendet ist, was kann ich tun, um guestUSer vom ersten Host abzumelden? Di36o vor 9 Jahren 0
Standardmäßig haben alle SSH-Server ein Verbindungszeitlimit. SSH hält eine Verbindung nur aufrecht, solange Keep-Alive-Pakete kontinuierlich gesendet werden. Mein Vorschlag ist, einfach das Terminalfenster zu schließen, um beide Verbindungen innerhalb weniger Minuten zu schließen. Wenn Sie sich im Einzelbenutzermodus befinden, geben Sie einfach "exit" ein, drücken Sie "enter" und geben Sie erneut "exit" ein. krowe vor 9 Jahren 0
Ich habe es getan, ich tippe "exit", aber das ist nicht das Ziel, weil ich einen Rückruf oder ähnliches brauche. Ein Skript zum Abmelden vom ersten Host. Ich gebe Zugang zum ersten Host, nur weil dieser der einzige sichere / erlaubte Host ist, um sich mit dem zweiten zu verbinden. Sobald die SSH-Sitzung auf dem zweiten Host erfolgt, muss ich mich sofort vom ersten Host abmelden. Bei der Suche in Google habe ich festgestellt, dass "ich" einen Dämon verwenden könnte, um die SSH-Sitzung anzuhören. Wenn die Sitzung beendet ist, führt Dämon das Abmeldeskript aus, aber ich weiß nicht, wie ich das implementieren soll. Di36o vor 9 Jahren 0
0
Eugen Konkov

Wenn Sie den Remote-Willen als Proxy verwenden möchten, müssen Sie keinen speziellen Benutzer erstellen. Sie können dies tun, indem Sie auth by key erstellen und diesen Schlüssel auf die bedingungslose Ausführung des angegebenen Befehls beschränken

man authorized_keys ... command="command" Specifies that the command is executed whenever this key is used for authentication. 

In diesem Befehl können Sie die SSH-Verbindung verketten.

Besser jedoch für diese Zwecke Port Forwarding verwenden.