In dieser Antwort werde ich auf ein konkretes Beispiel eingehen. Sie müssen nur die Hostnamen, Benutzernamen und Passwörter von Computern durch Ihre eigenen ersetzen.
Problemdarstellung
Nehmen wir der Konkretheit halber an, wir hätten folgende Netzwerktopologie:
our local computer <---> server 1 <---> server 2
Nehmen wir der Konkretheit halber an, wir hätten folgende Hostnamen, Benutzernamen und Passwörter von Computern:
LocalPC <---> hostname: mit.edu <---> hec.edu
username: bob username: john
password: dylan123 password: doe456
Ziel: Wir wollen einen SOCKS-Proxy einrichten, der auf Port 9991 von LocalPC lauscht, so dass jedes Mal, wenn eine Verbindung auf LocalPC von Port 9991 aus initiiert wird, diese durch mit.edu dann hec.edu geht.
Beispiel für einen Anwendungsfall: hec.edu hat einen HTTP-Server, der aus Sicherheitsgründen nur unter http://127.0.0.1:8001 erreichbar ist. Wir möchten http://127.0.0.1:8001 besuchen können, indem wir einen Web-Browser auf LocalPC öffnen.
Konfiguration
In LocalPC fügen Sie in ~/.ssh/config hinzu:
Host HEC
HostName hec.edu
User john
ProxyCommand ssh bob@mit.edu -W %h:%p
Dann im Terminal von LocalPC:
ssh -D9991 HEC
Es fragt Sie nach dem Passwort von bob auf mit.edu (d.h, dylan123), dann fragt es Sie nach dem Passwort von john auf hec.edu (d.h.,
&001
Zu diesem Zeitpunkt läuft der SOCKS-Proxy nun auf Port doe456 von 9991.
Wenn Sie z.B. eine Webseite auf LocalPC mit dem SOCKS-Proxy besuchen möchten, können Sie in Firefox:
Einige Anmerkungen:
- in
LocalPC ist ~/.ssh/config der Verbindungsname: Sie können ihn nach Belieben ändern.
- Die
HEC weist -D9991 an, einen SOCKS4-Proxy auf Port ssh einzurichten.