Scp de um servidor para outro servidor?

34

Estou tentando copiar arquivos de um servidor diretamente para outro, ignorando meu computador local.

eu fiz

scp -r [email protected]:~/data/* [email protected]:~/data/
Password: 
Host key verification failed.
lost connection

Isso é possível? Como posso corrigir isso?

Sibbs Gambling
fonte
Você pode postar a saída do seguinte comando - scp -r -v [email protected]: ~ / data / * [email protected]: ~ / data /
pragmático

Respostas:

55

Algo que uso com bastante frequência quando não há conexão possível entre os dois servidores

scp -3 user@server1:/path/to/file user@server2:/path/to/file

fonte

-3 Cópias entre dois hosts remotos são transferidas pelo host local. Sem essa opção, os dados são copiados diretamente entre os dois hosts remotos. Observe que esta opção desativa o medidor de progresso.

Supondo que você tenha uma boa conexão com os dois, não é muito lento.

exussum
fonte
Além disso, se você precisa usar portas especiais em ambos os servidores: superuser.com/questions/686394/...
Pit
Não se esqueça de adicionar a -rbandeira se estiver copiando um diretório.
Taylor Edmiston
16

Sim, isso é possível, mas somente se server1.compuder ser alcançado server2.comusando esse nome. Caso contrário, você provavelmente receberá uma mensagem:ssh: connect to host server2 port 22: Connection refused

A manpágina para scpafirma claramente que ele copia entre hosts em uma rede e que:

Cópias entre dois hosts remotos também são permitidas.

O que você deve fazer (uma vez) é sshpara [email protected]e de lá sshpara [email protected]. Responda à pergunta de autenticidade que você receberá com sim, para se livrar da mensagem de verificação da chave do host ao fazer oscp

Pode ser necessário ativar o agente de frete com:

scp -o "ForwardAgent yes" -r [email protected]:~/data/* [email protected]:~/data/

Mas certifique-se de perceber o perigo disso ( man ssh_config)

Anthon
fonte
Eu só sshed partir server1.comde server2.com, e eu de fato respondeu a pergunta e conseguiu. Então, volto ao meu computador local, faço-o novamente e recebo o server2.comprompt de senha da. Mas ele falha lá com:Permission denied (publickey,keyboard-interactive). lost connection
Sibbs Gambling
11
@SibbsGambling Acho que isso depende do encaminhamento de sua chave privada. Você pode fazer login nos dois servidores sem fornecer uma senha? Você poderia fazer o login de server1para server2sem fornecer uma senha. Pode ser necessário definir "ForwardAgent yes".
Anthon
1

Em primeiro lugar, você precisa verificar se você é capaz de transferir ssh para o server2 sem nenhum erro; se você receber o mesmo erro, abra o arquivo, ~/.ssh/known_hostspesquise a chave server2 e exclua-a.

Em seguida, verifique se você consegue executar ping no servidor pelo nome do host

Caso contrário, edite o arquivo host do servidor conforme mencionado abaixo

 #vi /etc/hosts  
 server1 192.186.x.x  
 server2 192.186.x.xx   
 :wq   ---> to save  

Depois de concluir este CD no local do arquivo que você deseja copiar para o servidor2

o scp file_name user@server2:/path_to_the_directory ---> você pode usar o IP em vez do nome do host que você pode mencionar -Rpara copiar um diretório.

Mongrel
fonte
0

Verifique se ~/.ssh/known_hostshá registros adequados para os dois servidores

Verifique também se o server1 possui ~/.ssh/known_hostsregistro adequado para o server2

Romeo Ninov
fonte
-2

Você pode usar este comando abaixo para copiar o arquivo de um servidor para outro:

scp source_user@source_remote_host:/usr/bin/mysql_backup.sh \
         target_user@target_remote_host:/var/tmp/
karthik m
fonte