Ho un grosso file sul server one
e voglio copiarlo sul server two
usando scp
. Ho le chiavi configurate correttamente e posso inviare ssh / scp su entrambi i server dal mio desktop.
Il file che devo copiare è più grande dello spazio libero sul disco fisso della mia workstation, quindi volevo fare:
scp one:/opt/bigfile.tar.gz two:/opt/bigfile.tar.gz
ma ho ottenuto:
ssh: Could not resolve hostname one: Name or service not known
Non abbiamo DNS qui (non chiedermi perché), quindi ho questo nel mio ~ / .ssh / config:
Host one
Hostname <IP address of server one>
User jspurny
Host two
Hostname <IP address of server two>
User jspurny
Se provo con un file più piccolo e lo trasferisco dalla one
mia workstation e poi a two
, funziona benissimo:
scp one:/opt/smallerfile.tar.gz .
scp smallerfile.tar.gz two:/opt/
Quando ho usato gli indirizzi IP direttamente come suggerito nel commento, ho ottenuto:
$ scp jspurny@<one's IP>:bigfile.tar.gz jspurny@<two's ip>:bigfile.tar.gz
Host key verification failed.
lost connection
Non un problema:
La dimensione non è un problema qui - era solo un "trigger" per questo problema in quanto non c'era modo di archiviare bigfile.tar.gz
sulla mia workstation. Il problema si verifica indipendentemente dalle dimensioni del file.
Domanda:
Perché il comando:
scp oneremote:file secondremote:file
genera un errore a prescindere se si utilizzano gli .ssh/config
alias o si utilizzano direttamente gli indirizzi IP?
Risolto - in un certo senso - ancora alla ricerca di spiegazioni - Ho diviso il bigfile in file più piccoli e li ho trasferiti uno per uno attraverso la mia workstation. Mi chiedo ancora perché non ha funzionato. Quindi apprezzerei ancora qualche spiegazione di ciò che era sbagliato ..
Ho trovato una ragione per cui fallisce: sembra che stia diventando sciocco. Ho pensato che il comando
scp one:file two:file
stava creando due connessioni per ciascun server e quindi riceveva i dati da uno e li inviava immediatamente a due e si comportava quindi come un relay.
Questo chiaramente non è il caso, perché una semplice -v
opzione ha rivelato che in realtà si collega solo a uno e da uno tenta di connettersi a due . Il che ovviamente non è possibile perché il server uno non dovrebbe connettersi a due .