SSH-Verbindung durch einen Proxy unter Debian und Ubuntu

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.

Tags : Ubuntu Debian ssh Proxy Tunnel