Para el transporte SSH de rsync, coloca la conexión mediante proxy de reenvío en el alias de host SSH. Con la implementación de nc de OpenBSD, se puede elegir un proxy HTTP sin cuenta en ~/.ssh/config:

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

El proxy debe permitir CONNECT hacia files.example.net:22. En un host SSH público donde se admiten intermediarios públicos, la lista de proxies HTTP ofrece candidatos de host y puerto de proxy sin cuenta; verifica el permiso para el destino y el puerto SSH reales. La dirección -x de nc identifica al intermediario; %h y %p se expanden al destino y al puerto SSH. Otro programa llamado también nc puede no admitir estos conmutadores.

Usa el alias como host remoto en rsync:

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

La ruta con un solo dos puntos selecciona la forma de shell remoto. SSH usa su configuración habitual de cuenta de destino y clave de host, mientras que el auxiliar transporta su flujo de bytes por el proxy HTTP. El destino también necesita rsync para el comando remoto.

RSYNC_PROXY, en cambio, configura la conexión directa de rsync con el demonio. No configura esta invocación SSH. Del mismo modo, cambiar el Port de SSH a 8080 seleccionaría otro puerto de servicio de destino, en lugar de identificar el receptor del proxy.

Mantén la autenticación del proxy en la interfaz admitida por el auxiliar elegido cuando sea necesario; un nombre de usuario SSH no es un nombre de usuario de proxy.

Artículos relacionados