Dans le passé, la façon dont scp
fonctionnait la copie de fichiers entre systèmes distants ( naïvement ) était très gênante: si vous écriviez, par exemple
scp user1@remote1:/home/user1/file1.txt user2@remote2:/home/user2/file1.txt
scp
ouvrirait d’abord une ssh
session sur remote1, puis s’exécuterait scp
de là vers remote2. Pour que cela fonctionne, vous devez configurer les informations d'identification d'autorisation pour remote2 sur remote1.
La façon moderne de le faire (au contraire, "moderne" parce qu'elle a été mise en œuvre il y a seulement quelques années et que tout le monde n'a peut-être pas la -3
capacité de le faire scp
) nécessite deux étapes. La première étape nécessaire consiste ~/.ssh/config
à configurer toutes les options pour la connexion à distance à distance1 et à distance2, comme suit:
Host remote1.example.org
Port 2222
IdentityFile /path/to/host1-id_rsa
Host remote2.example.org
Port 6969
IdentityFile /path/to/host2-id_rsa
De cette façon, il devient possible de transmettre toutes les options nécessaires à la commande sans ambiguïtés : par exemple, si nous avions dit sur le port 2222 d'utilisation de la CLI sans la configuration ci-dessus, il aurait été difficile de savoir s'il s'agissait de remote1 ou de remote2 , et de même pour le fichier contenant les clés cryptographiques. De cette façon, le CLI reste ordonné et simple.
Deuxièmement, utilisez l' -3
option suivante:
scp -3 user1@remote1:/home/user1/file1.txt user2@remote2:/home/user2/file1.txt
L' -3
option indique scp
d'acheminer le trafic via le PC sur lequel la commande est émise, même s'il s'agit d'une 3ème partie du transfert. De cette manière, les informations d'identification de l'autorisation ne doivent résider que sur le PC émetteur, le tiers.