Beim SSH-Transport von rsync gehört die Verbindung über den Forward-Proxy auf den SSH-Host-Alias. Mit der OpenBSD-Implementierung von nc lässt sich in ~/.ssh/config ein HTTP-Proxy ohne Konto auswählen:

Host sync-target
    HostName files.example.net
    User syncuser
    Port 22
    ProxyCommand nc -X connect -x proxy.example.net:8080 %h %p

Der Proxy muss CONNECT zu files.example.net:22 erlauben. Bei einem öffentlichen SSH-Host, auf dem öffentliche Vermittler zulässig sind, bietet die HTTP-Proxy-Liste Kandidaten für Proxy-Host und -Port ohne Konto; prüfen Sie die Erlaubnis für das tatsächliche SSH-Ziel und den Port. Die -x-Adresse von nc benennt den Vermittler; %h und %p werden zum SSH-Ziel und Port expandiert. Ein anderes Programm namens nc unterstützt diese Schalter möglicherweise nicht.

Verwenden Sie den Alias in rsync als entfernten Host:

rsync -av -e ssh sync-target:/srv/export/ ./export/

Der Pfad mit einem Doppelpunkt wählt die Remote-Shell-Form. SSH nutzt seine übliche Konfiguration für Zielkonto und Hostschlüssel, während der Helfer seinen Bytestrom durch den HTTP-Proxy führt. Das Ziel benötigt außerdem rsync für den entfernten Befehl.

RSYNC_PROXY konfiguriert dagegen rsyncs direkte Daemon-Verbindung. Es konfiguriert diesen SSH-Aufruf nicht. Ebenso würde eine Änderung von SSH Port auf 8080 einen anderen Dienstport des Ziels wählen, statt den Proxy-Listener zu benennen.

Behalten Sie die Proxy-Authentifizierung bei Bedarf auf der vom gewählten Helfer unterstützten Schnittstelle; ein SSH-Benutzername ist kein Proxy-Benutzername.

Ähnliche Artikel