Laisser rsync réutiliser un alias d'hôte SSH via le proxy HTTP
Attachez un assistant HTTP CONNECT à la configuration SSH utilisée par le transport de shell distant de rsync.
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 %pLe 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.