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

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.