Deixe o rsync reutilizar um alias de host SSH através do proxy HTTP
Anexe um auxiliar HTTP CONNECT à configuração SSH usada pelo transporte de shell remoto do rsync.
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 %pO 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.