Wie stelle ich über einen anderen Server eine SSH-Verbindung zu einem Server her?

Wie stelle ich über einen anderen Server eine SSH-Verbindung zu einem Server her?

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 ) sshbenötigen , funktioniert dies auch sehr gut:sshscpsftp

ssh -t $SERVER_A ssh $SERVER_B

Die -tOption erzwingt die Zuweisung eines Pseudo-TTY, selbst wenn am anderen Ende ein einzelner Befehl ausgeführt wird. Dies ist hilfreich, da sshein 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 ProxyCommandEinstellung für SSH. Sie können diese für jeden Host einzeln angeben ~/.ssh/configund 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 netcatPaket. (Sie können jedoch alles verwenden, was eine TCP-Verbindung herstellt und Standardeingabe und -ausgabe durchlässt.)

verwandte Informationen