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.

prev Content-Security-Policy (CSP)
next Sicheres VPN mit Wireguard und wg-easy