GNU/Linux >> Tutoriels Linux >  >> Linux

Fichiers Rsync via un hôte intermédiaire

Cette question trouve essentiellement une réponse ailleurs, y compris ici pour scp et ici pour rsync. Étant donné que ce dernier inclut ma réponse, mais qu'aucune réponse n'a été acceptée, je vais le répéter ici.

Comme vous l'avez noté, vous pouvez utiliser rsync est -e | --rsh option, mais ça va être un peu plus compliqué :

rsync -azv -e 'ssh -o "ProxyCommand ssh -A PROXYHOST -W %h:%p"' foo/ dest:./foo/

Ou, si votre version de ssh est assez nouveau (OpenSSH>=v7.3), vous pouvez utiliser le -J (ProxyJump ) possibilité

rsync -azv -e 'ssh -A -J [email protected]:PORT' foo/ dest:./foo/

Notez que j'utilise -A (transfert d'agent) mais cela devrait également fonctionner avec l'authentification par mot de passe si vous n'utilisez pas de clés, et, bien sûr, vous pouvez remplacer proxy avec B et dest avec C dans votre exemple.

Si par hasard vous n'avez pas un ssh assez récent version (>=5.3, IIRC), vous pouvez utiliser netcat au lieu de -W option à ssh :

rsync -azv -e 'ssh -o "ProxyCommand ssh -A PROXYHOST nc %h %p"' foo/ dest:./foo/

Enfin, comme indiqué dans les commentaires déjà, vous pouvez mettre le ProxyCommand dans votre $HOME/.ssh/config fichier afin que vous n'ayez pas à avoir une ligne de commande aussi compliquée. Plus précisément, ajoutez quelque chose comme ceci :

Host C
  ProxyCommand ssh -A PROXYHOST -p 22 -W %h:%p

Ou, en utilisant ProxyJump pour OpenSSH>=v 7.3 :

Host C
  ProxyJump PROXYHOST

Ensuite, vous devriez pouvoir faire :

rsync -azv foo/ C:./foo/

Linux
  1. Comment désactiver sélectivement Rsync ?

  2. Comment Scp Via Une Machine Intermédiaire ??

  3. Sauvegardez vos fichiers avec rsync

  4. Utiliser rsync pour synchroniser les fichiers

  5. dossiers de fusion Linux :rsync ?

Comment transférer des fichiers avec Rsync sur SSH

Comment transférer des fichiers avec Rsync sur SSH

Exemples Rsync pour transférer des fichiers sous Linux

Reprendre les fichiers partiellement transférés via SSH à l'aide de Rsync

Comment SSH au serveur via Linux

Comment utiliser rsync avec une adresse IPv6 via SSH ?