Voor het SSH-transport van rsync hoort de verbinding via de forward-proxy op de SSH-hostalias. Met de OpenBSD-implementatie van nc kan in ~/.ssh/config een HTTP-proxy zonder account worden gekozen:

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

De proxy moet CONNECT naar files.example.net:22 toestaan. Voor een openbare SSH-host waar openbare tussenpartijen zijn toegestaan, biedt de HTTP-proxylijst kandidaten voor proxyhost en -poort zonder account; controleer de toestemming voor het werkelijke SSH-doel en de poort. Het -x-adres van nc wijst de tussenpartij aan; %h en %p worden uitgebreid naar de SSH-bestemming en -poort. Een ander programma dat ook nc heet ondersteunt deze schakelaars mogelijk niet.

Gebruik de alias als externe host in rsync:

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

Het pad met één dubbele punt kiest de remote-shellvorm. SSH gebruikt zijn gebruikelijke configuratie voor doelaccount en hostsleutel, terwijl de hulp zijn bytestroom door de HTTP-proxy leidt. De bestemming heeft ook rsync nodig voor de externe opdracht.

RSYNC_PROXY configureert daarentegen de directe daemonverbinding van rsync. Het configureert deze SSH-aanroep niet. Evenzo zou het wijzigen van de SSH-poort naar 8080 een andere poort van de doeldienst kiezen, in plaats van de proxyluisteraar aan te wijzen.

Houd proxyauthenticatie waar nodig op de interface die de gekozen hulp ondersteunt; een SSH-gebruikersnaam is geen proxygebruikersnaam.

Gerelateerde artikelen