Pour le transport SSH de rsync, placez la connexion par proxy sortant sur l'alias d'hôte SSH. Avec l'implémentation nc d'OpenBSD, un proxy HTTP sans compte peut être choisi dans ~/.ssh/config :

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

Le proxy doit autoriser CONNECT vers files.example.net:22. Pour un hôte SSH public où les intermédiaires publics sont permis, la liste de proxys HTTP propose des candidats pour l'hôte et le port du proxy sans compte ; vérifiez l'autorisation pour la cible et le port SSH réels. L'adresse -x de nc désigne l'intermédiaire ; %h et %p se développent en la destination et le port SSH. Un autre programme nommé nc peut ne pas prendre en charge ces commutateurs.

Utilisez l'alias comme hôte distant dans rsync :

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

Le chemin à un seul deux-points sélectionne la forme shell distant. SSH utilise sa configuration habituelle de compte cible et de clé d'hôte, tandis que l'assistant achemine son flux d'octets par le proxy HTTP. La destination doit aussi disposer de rsync pour la commande distante.

RSYNC_PROXY configure plutôt la connexion directe de rsync au démon. Il ne configure pas cette invocation SSH. De même, remplacer le Port SSH par 8080 choisirait un autre port de service de destination, au lieu d'identifier l'écouteur du proxy.

Conservez l'authentification du proxy sur l'interface prise en charge par l'assistant choisi lorsque c'est nécessaire ; un nom d'utilisateur SSH n'est pas un nom d'utilisateur de proxy.

Articles similaires