J'ai un gros fichier sur le serveur one
et je veux le copier sur le serveur en two
utilisant scp
. J'ai les clés correctement configurées et je peux ssh / scp vers les deux serveurs depuis mon bureau.
Le fichier que je dois copier est plus grand que l'espace libre sur le disque dur de mon poste de travail, donc je voulais faire:
scp one:/opt/bigfile.tar.gz two:/opt/bigfile.tar.gz
mais j'ai:
ssh: Could not resolve hostname one: Name or service not known
Nous n'avons pas de DNS ici (ne me demandez pas pourquoi), donc je l'ai dans mon ~ / .ssh / config:
Host one
Hostname <IP address of server one>
User jspurny
Host two
Hostname <IP address of server two>
User jspurny
Si j'essaie avec un fichier plus petit et le transfère de one
à mon poste de travail puis à two
, cela fonctionne très bien:
scp one:/opt/smallerfile.tar.gz .
scp smallerfile.tar.gz two:/opt/
Lors de l'utilisation des adresses IP directement comme suggéré dans le commentaire, j'ai obtenu:
$ scp jspurny@<one's IP>:bigfile.tar.gz jspurny@<two's ip>:bigfile.tar.gz
Host key verification failed.
lost connection
Pas une solution:
La taille n'est pas un problème ici - ce n'était qu'un «déclencheur» de ce problème car il n'y avait aucun moyen de stocker bigfile.tar.gz
sur mon poste de travail. Le problème se produit quelle que soit la taille du fichier.
Question:
Pourquoi la commande:
scp oneremote:file secondremote:file
génère une erreur, peu importe si vous utilisez des .ssh/config
alias ou utilisez directement des adresses IP?
Résolu - en quelque sorte - toujours à la recherche d'explications - j'ai divisé le gros fichier en fichiers plus petits et les ai transférés un par un via mon poste de travail. Je me demande toujours pourquoi cela n'a pas fonctionné. J'apprécierais donc encore quelques explications sur ce qui n'allait pas ..
Trouvé une raison pour laquelle il échoue: Il semble que j'étais stupide. Je pensais que la commande
scp one:file two:file
créait deux connexions à chaque serveur, puis recevait des données d' un et les envoyait immédiatement à deux et agissait ainsi comme un relais.
Ce n'est clairement pas le cas, car une simple -v
option a révélé qu'il se connecte en fait à un seul et à partir d' un, il essaie de se connecter à deux . Ce qui n'est évidemment pas possible car le serveur un n'est pas censé se connecter à deux .