Ein lokaler SOCKS-Listener ist in manchen Netzen nützlich und in anderen nicht vorhanden. OpenSSH kann einen Proxy-Befehl bedingt auswählen, ohne diese Wahl auf jeden Host anzuwenden.

Für OpenSSH mit der OpenBSD-Form von nc sieht eine beispielhafte Client-Konfiguration so aus:

Host work-server
    HostName ssh.example.net
    User alex

Match originalhost work-server exec "nc -z -w 1 127.0.0.1 1080"
    ProxyCommand nc -X 5 -x 127.0.0.1:1080 %h %p

Match all

originalhost beschränkt die Prüfung auf den Namen, der auf der SSH-Kommandozeile angegeben wird. exec passt, wenn sein Befehl erfolgreich endet. Das abschließende Match all beendet diesen bedingten Gültigkeitsbereich für nachfolgende Einstellungen.

Das setzt voraus, dass keine frühere anwendbare Einstellung bereits einen widersprüchlichen Proxy-Befehl oder eine Sprungroute gewählt hat. SSH verwendet für eine Konfigurationsoption normalerweise den ersten erhaltenen Wert, sodass eine breite Voreinstellung weiter oben verhindern kann, dass eine spätere Bedingung die erwartete Wirkung hat.

Ein lauschender Socket ist ein bescheidenes Versprechen

Die Prüfung testet den TCP-Zugang zu einem lokalen Port. Sie schließt keine SOCKS-Aushandlung ab, baut nicht die gewünschte Zielverbindung auf und belegt nicht, welches Programm den Port besitzt. Der Listener kann nach der Prüfung auch verschwinden.

Das Zeitlimit hält eine fehlgeschlagene Prüfung begrenzt. Die gezeigten Optionen gehören zur OpenBSD-Schnittstelle von nc; andere Programme mit demselben Dateinamen können andere Optionen anbieten.

Wenn die Bedingung nicht passt, lässt dieses Beispiel die Verbindung ohne diesen ProxyCommand und erlaubt so ihre gewöhnliche Route. Das ist nur angebracht, wenn direkter Zugang erlaubt ist. Eine verpflichtende Proxy-Richtlinie sollte eine Verfügbarkeitsprüfung nicht als Erlaubnis nutzen, auf eine andere Route auszuweichen.

Der SSH-Zielhostname und die Hostschlüsselprüfungen identifizieren weiterhin den Zielserver. Die Wahl eines Transporthelfers ist kein Grund, einen unerwarteten Hostschlüssel zu akzeptieren.

Ähnliche Artikel