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.