Ich wollte ssh
von server1
und server3
über erreichen server2
.
Dies kann wie folgt erfolgen:
ssh -t user2@server2 ssh user3@server3
Aber wie kann ich das erreichen, wenn server2
und server3
habenPasswort-Logins?
Einschränkungen:
1)Ich werde keine Passwörter eingeben
2)Ich kann in diesem Fall keine SSH-Schlüssel verwenden
Antwort1
Sie sollten die -t
Option bei jedem weiteren verwenden ssh
, außer beim letzten:
ssh -t user1@server1 ssh -t user2@server2 ssh user3@server3
Wenn möglich, verwenden Sie besser -J
( ProxyJump
) anstelle von eingebetteten SSH-Befehlen:
ssh -J user1@server1,user2@server2 user3@server3
Antwort2
Es gibt mehrere Möglichkeiten, dies zu tun. Die schnellste und einfachste Methode, die ich verwenden würde, ist, einen Tunnel zu bauen server1 -> server2
und diesen Tunnel dann zu benutzen, umserver1 -> server3
ssh -L localhost:2222:server3:22 server2
Hier sagen wir:
ssh zu server2
...
jedem Verkehr, der auf demMLokale Seite des Tunnels auf Port 2222 des lokalen Hosts ...
durch den Tunnel leiten ...
auf der anderen Seite den Datenverkehr an Port 22 des Server3 senden
Dann aus einem anderen Fenster:
ssh -p2222 localhost
Sie sollten nun auf Server3 nach dem Kennwort gefragt werden.