Eu tenho um arquivo grande no servidor one
e quero copiá-lo para o servidor two
usando scp
. Eu tenho as chaves configuradas corretamente e posso usar o ssh / scp nos dois servidores da minha área de trabalho.
O arquivo que eu preciso copiar é maior que o espaço livre no disco rígido da minha estação de trabalho, então eu queria:
scp one:/opt/bigfile.tar.gz two:/opt/bigfile.tar.gz
mas eu consegui:
ssh: Could not resolve hostname one: Name or service not known
Nós não temos DNS aqui (não me pergunte o porquê), então eu tenho isso no meu ~ / .ssh / config:
Host one
Hostname <IP address of server one>
User jspurny
Host two
Hostname <IP address of server two>
User jspurny
Se eu tentar com um arquivo menor e transferi-lo one
para minha estação de trabalho e depois para two
, ele funcionará bem:
scp one:/opt/smallerfile.tar.gz .
scp smallerfile.tar.gz two:/opt/
Ao usar endereços IP diretamente, conforme sugerido no comentário, obtive:
$ scp jspurny@<one's IP>:bigfile.tar.gz jspurny@<two's ip>:bigfile.tar.gz
Host key verification failed.
lost connection
Não é um problema:
O tamanho não é um problema aqui - foi apenas um "gatilho" para esse problema, pois não havia como armazenar bigfile.tar.gz
na minha estação de trabalho. O problema ocorre independentemente do tamanho do arquivo.
Questão:
Por que o comando:
scp oneremote:file secondremote:file
gera um erro, independentemente de estar usando .ssh/config
alias ou diretamente usando endereços IP?
Resolvido - mais ou menos - ainda procurando explicação - eu dividi o bigfile em arquivos menores e os transferi um a um através da minha estação de trabalho. Ainda estou me perguntando por que não funcionou. Então, eu ainda apreciaria alguma explicação do que estava errado ..
Encontrei uma razão para o fracasso: parece que eu estava sendo tolo. Eu pensei que o comando
scp one:file two:file
estava criando duas conexões para cada servidor e, em seguida, recebia dados de um e os envia imediatamente para dois , agindo como um relé.
Claramente não é esse o caso, porque uma -v
opção simples revelou que de fato se conecta a um e de um tenta se conectar a dois . O que obviamente não é possível porque o servidor um não deve se conectar a dois .