Mögliches Duplikat:
SSH über mehrere Hosts
Zum Anschluss anServer BIch muss zuerst per SSH aufServer A. Wie lautet die Befehlszeile für den ZugriffServer B?
Antwort1
Wenn Server B über erreichbar ist und Sie nur (nicht direkt oder ) ssh
benötigen , funktioniert dies auch sehr gut:ssh
scp
sftp
ssh -t $SERVER_A ssh $SERVER_B
Die -t
Option erzwingt die Zuweisung eines Pseudo-TTY, selbst wenn am anderen Ende ein einzelner Befehl ausgeführt wird. Dies ist hilfreich, da ssh
ein Pseudo-TTY erforderlich ist.
Da Sie zwei verschachtelte Instanzen von verwenden ssh
, ist das Escape-Zeichen in der inneren Sitzung Enter ~ ~(zwei Tilden). Eine Tilde sendet das Escape-Zeichen an die erste Shell.
Antwort2
Es gibt hierfür keine integrierte Möglichkeit ssh
, außer die Portweiterleitung zu verwenden.
Es gibt jedoch eine Methode, die einigermaßen gut funktioniert – die ProxyCommand
Einstellung für SSH. Sie können diese für jeden Host einzeln angeben ~/.ssh/config
und damit den Befehl angeben, der ausgeführt werden soll, um eine Verbindung zum Remote-SSH-Port herzustellen.
Ich verwende dies auf mehreren Hosts:
host serverB.example.com serverB
ProxyCommand /usr/bin/ssh serverA.example.com /usr/bin/nc %h %p
ssh(1)
Weitere Einzelheiten finden Sie auf der Handbuchseite. Den Befehl, den ich zum Weiterleiten der Verbindung verwende, finden Sie nc(1)
im netcat
Paket. (Sie können jedoch alles verwenden, was eine TCP-Verbindung herstellt und Standardeingabe und -ausgabe durchlässt.)