Per il trasporto SSH di rsync, metti la connessione tramite proxy in uscita sull'alias host SSH. Con l'implementazione nc di OpenBSD, in ~/.ssh/config si può scegliere un proxy HTTP senza account:

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

Il proxy deve consentire CONNECT verso files.example.net:22. Per un host SSH pubblico in cui sono ammessi intermediari pubblici, la lista di proxy HTTP offre candidati per host e porta del proxy senza account; verifica il permesso per la destinazione e la porta SSH effettive. L'indirizzo -x di nc indica l'intermediario; %h e %p si espandono nella destinazione e nella porta SSH. Un altro programma chiamato nc potrebbe non supportare questi interruttori.

Usa l'alias come host remoto in rsync:

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

Il percorso con un solo due punti seleziona la forma shell remota. SSH usa la sua solita configurazione di account di destinazione e chiave host, mentre l'helper trasporta il flusso di byte attraverso il proxy HTTP. La destinazione deve avere rsync disponibile per il comando remoto.

RSYNC_PROXY, invece, configura la connessione diretta di rsync al demone. Non configura questa invocazione SSH. Allo stesso modo, cambiare la Port SSH in 8080 selezionerebbe un'altra porta di servizio di destinazione, invece di identificare l'ascoltatore del proxy.

Mantieni l'autenticazione del proxy sull'interfaccia supportata dall'helper scelto quando necessario; un nome utente SSH non è un nome utente del proxy.

Articoli correlati