Para o transporte SSH do rsync, coloque a conexão pelo proxy de saída no alias de host SSH. Com a implementação nc do OpenBSD, é possível escolher um proxy HTTP sem conta em ~/.ssh/config:

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

O proxy deve permitir CONNECT para files.example.net:22. Num host SSH público onde intermediários públicos são permitidos, a lista de proxies HTTP oferece candidatos de host e porta de proxy sem conta; verifique a permissão para o alvo e a porta SSH reais. O endereço -x do nc identifica o intermediário; %h e %p expandem-se para o destino e a porta SSH. Outro programa também chamado nc pode não suportar esses comutadores.

Use o alias como host remoto no rsync:

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

O caminho com um único dois-pontos seleciona a forma de shell remoto. O SSH usa a configuração habitual de conta de destino e chave de host, enquanto o auxiliar transporta o fluxo de bytes pelo proxy HTTP. O destino também precisa de rsync para o comando remoto.

Já o RSYNC_PROXY configura a conexão direta do rsync com o daemon. Ele não configura esta invocação SSH. Da mesma forma, mudar a Port do SSH para 8080 escolheria outra porta de serviço de destino, em vez de indicar o ouvinte do proxy.

Mantenha a autenticação do proxy na interface suportada pelo auxiliar escolhido quando necessário; um nome de usuário SSH não é um nome de usuário de proxy.

Artigos relacionados