Automatische Verbindung von SSH über einen Proxy
Wie konfiguriert man automatisch die Verwendung eines Proxies für bestimmte SSH-Verbindungen um z.B. aus dem Homeoffice eine statische IP innerhalb eines Firmennetzwerks zu verwenden?
Will man eine SSH Verbindung zu einem Server herstellen, der z.B. einen IP-Filter hat, so kann man das über einen sog. Proxy machen.
Client -> SSH -> Proxyserver -> SSH -> Zielserver
# Schritt 1 ssh (z.B. via vpn) zu einem Server innerhalb des Firmennetzwerkes ssh userlocal@192.168.178.199 # Schritt 2: Nach dem Verbindungsaufbau zu dem Firmenrechner, öffne eine weitere SSH Verbindung zum IP-geschützten Zielserver ssh remote@someexternaldomain.com -p 25426
Dieses Vorgehen ist relativ umständlich und nichts, was man täglich ggf. mehrfach wiederholen möchte. Schon gar nicht, wenn es sich um mehrere Zielserver handelt.
MacOS und Linux bieten die Möglichkeit eines komfortablen und schnellen Workarounds für derartige Probleme. Dazu erstellt man im Home-Verzeichnis folgende Datei /Users/myusername/.ssh/config
In dieser Datei können Presets für SSH-Verbindungen hinterlegt werden. Ein einfaches Beispiel sieht wie folgt aus
Host server1 HostName myexternalserver.com Port 25426 User remote
Dieses Configset kann wie folgt verwendet werden
# "herkömmliche" Methode (ohne Preset) ssh remote@myexternalserver.com -p 25426 # Verwenden des Presets (.ssh/config) ssh server1
Nun erweitern wir das obige Beispiel und fügen einen Proxy ein:
Host server1 HostName myexternalserver.com Port 25426 User remote ProxyCommand ssh userlocal@192.168.178.199 -W %h:%p
Der Shortcut wird wie bisher verwendet:
# Verbindung zu server1 über einen Proxy ssh server1
Immer, wenn man jetzt "ssh server1" im Terminal eingibt, wird eine SSH-Verbindung zum Proxy 192.168.178.199 und von dort zu dem Server myexternalserver.com aufgebaut.
Damit dieses Verfahren ohne die Eingabe von Passwörtern funktioniert, wird eine funktionierende Authentifizierung über public / private Keys vorausgesetzt. Die Verwendung von Passwörtern gilt als unsicher und wird nicht empfohlen.