La réponse ProxyCommand de Grawity a fonctionné pour moi, mais comme je suis moins familier avec SSH, il a fallu des expériences. Je pensais épeler plus en détail la réponse de Grawity pour aider les autres débutants de SSH comme moi. Voici les définitions pour la notation plus explicite:
Machine A: la machine sur laquelle vous vous trouvez
Serveur B: utilisateurB@ip.address.for.B (hôte de saut ou serveur intermédiaire)
Serveur C: userC@ip.address.for.C (le serveur distant sur lequel vous souhaitez copier)
ProxyCommnad
A$ scp -oProxyCommand="ssh -W %h:%p userB@ip.address.for.B" thefile userC@ip.address.for.C:destination
Exemple concret
Donc, pour un exemple concret, disons que vous avez accès à un serveur avec IP 0.0.1.2
avec un compte d'utilisateur nommé bar
(Serveur C). Mais pour y arriver, vous devez d'abord vous connecter à un serveur avec IP 0.0.1.1
avec un compte d'utilisateur nommé foo
(Serveur B). Vous souhaitez maintenant copier le fichier baz.txt
situé sur votre ordinateur actuel (ordinateur A) dans 0.0.1.2
le /home/bar/
répertoire du serveur . Pour utiliser la commande Proxy ci-dessus dans cet exemple, vous devez exécuter les opérations suivantes:
A$ scp -oProxyCommand="ssh -W %h:%p foo@0.0.1.1" baz.txt bar@0.0.1.2:/home/bar/
Vous pouvez également tout aussi facilement copier un fichier du serveur C en inversant l’ordre du fichier et de la destination. Ainsi, par exemple, si baz.txt
était déjà sur le serveur 0.0.1.2
situé à, /home/bar/
vous pouvez le copier sur votre machine en utilisant:
A$ scp -oProxyCommand="ssh -W %h:%p foo@0.0.1.1" bar@0.0.1.2:/home/bar/baz.txt /destination/path/on/A
J'espère que cela aidera les personnes qui ont besoin de précisions un peu plus que les autres.
A$ rsync <options> -e 'ssh B ssh' source C:destination