Je veux rsync à un nœud de cluster auquel je me connecte généralement en passant par un autre système:
Dis que je me connecte d'abord à
ssh user@bridge
et de là à
ssh user@clusternode
Maintenant, je veux rsync de mon poste de travail au clusternode. Je fais ce qui suit:
J'ouvre un tunnel ssh
ssh -L8000:clusternode:8000 user@bridge
Je rsync de mon poste de travail au clusternode
rsync -e "ssh -p8000" source user@localhost:destination
et ça ne marche pas, je reçois
ssh_exchange_identification: Connection closed by remote Host
Pourquoi ça ne marche pas? Qu'est-ce que je dois faire?
J'ai trouvé beaucoup d'informations ici:
http://toddharris.net/blog/2005/10/23/rsyncing-through-an-ssh-tunnel/
Je pense que pour comprendre que mon problème est la deuxième authentification entre le pont et la destination, j'ai donc changé pour la méthode 2 qui n'est pas non plus très élégante, mais ça marche. Je voudrais essayer la méthode 3, mais je ne sais pas comment configurer un démon rsync
Voici ce qui a fonctionné pour moi.
J'exécute une commande en arrière-plan pour créer un tunnel vers l'hôte distant:
ssh -N -L 2222:remote.example.com:22 bridge.example.com&
puis je rsync vers localhost comme ceci:
rsync -auve "ssh -p 2222" . me@localhost:/some/path
Essayez ce one-liner:
rsync -av -e "ssh -A root@proxy ssh" ./src root@target:/dst
Vous devez vous connecter au port 22 de clusternode, de sorte que le tunnel devrait ressembler à
ssh -L localhost:8000:clusternode:22 user@bridge