SSH-Verbindung durch einen Proxy unter Ubuntu oder Debian
Manchmal kann es erforderlich sein, eine ssh-Verbindung durch einen Proxy aufzubauen, z.B. wenn man aus einem Hotel Verbindung zum heimischen Server aufnehmen möchte. Voraussetzung ist, dass der Proxy https unterstützt.
Im konkreten Beispiel ist der ssh Port des heimischen Servers 33022 (evtl. kann es erforderlich sein Port 443 zu verwenden, je nachdem, was der Proxy erlaubt). Diese Einstellung kann man auf dem Server durch hinzufügen der Zeile Port 33022
in der Datei /etc/ssh/sshd_config
und anschliessenden Neustart des ssh-Daemons mittels sudo /etc/init.d/ssh restart
erreichen.
Alternativ kann man ein entsprechendes Portforwarding im Router vornehmen.
Nun muss man dem Client beibringen, sich nicht direkt, sondern durch einen Proxy zu connecten. Dazu wird zunächst das Paket connect-proxy installiert:
sudo apt-get install connect-proxy
Danach wird in der Datei ~/.ssh/config
hinterlegt, wann der Proxy verwendet werden soll (wenn die Datei nicht existiert, kann man sie einfach anlegen):
# Eintrag für meinen Heimserver
# (Bitte Adressen und Ports ggf anpassen)
Host mein.server.dyndns.org
ProxyCommand connect -H hotel.proxy.net:8080 %h 33022
#
#Alle anderen ohne Proxy
Host *
ProxyCommand connect %h %p
Danach sollte der Verbindungsaufbau mittels ssh mein.server.dyndns.org
funktionieren. Bei meinen Tests dauerte der Verbindungsaufbau in der Regel allerdings deutlich länger als sonst.
Um den Zugriff auf den heimischen Webserver mit dem Browser zu realisieren, kann man auch einen Port tunneln. Lautet die interne IP des heimischen Werbservers z.B. 192.168.0.3 kann der Zugriff folgendermassen erfolgen:
Zunächst wird die Verbindung mittels
ssh mein.server.dyndns.org -L 2022:192.168.0.3:80
aufgebaut. Danach ist der Webserver im Browser unter http://localhost:2022
erreichbar.
Schreibe einen Kommentar