Scp da un server a un altro server?


34

Sto cercando di copiare i file da un server direttamente a un altro, ignorando il mio computer locale.

L'ho fatto

scp -r usrname@server1.com:~/data/* usrname@server2.com:~/data/
Password: 
Host key verification failed.
lost connection

È possibile? Come posso ripararlo?


Puoi pubblicare l'output del seguente comando- scp -r -v nomeutente@server1.com: ~ / data / * nomeutente@server2.com: ~ / data /
pragmatico

Risposte:


55

Qualcosa che uso abbastanza spesso quando non è possibile alcuna connessione tra i due server

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

fonte

-3 Le copie tra due host remoti vengono trasferite attraverso l'host locale. Senza questa opzione i dati vengono copiati direttamente tra i due host remoti. Nota che questa opzione disabilita l'indicatore di avanzamento.

Supponendo che tu abbia una buona connessione con entrambi, non è troppo lento.


Inoltre, se è necessario utilizzare porte speciali su entrambi i server: superuser.com/questions/686394/…
Pit

Non dimenticare di aggiungere il -rflag se stai copiando una directory.
Taylor Edmiston,

16

Sì, questo è possibile, ma solo se è server1.compossibile raggiungerlo server2.comutilizzando quel nome. Altrimenti probabilmente riceverai un messaggio:ssh: connect to host server2 port 22: Connection refused

La manpagina per scpafferma chiaramente che copia tra host su una rete e che:

Sono consentite anche copie tra due host remoti.

Che cosa si dovrebbe fare (una volta) è sshper username@server1.come da lì ssha username@server2.com. Rispondi alla domanda di autenticità che otterrai con Sì, per sbarazzarti del messaggio di verifica della chiave host mentre eseguiscp

Potrebbe essere necessario abilitare lo spedizioniere con:

scp -o "ForwardAgent yes" -r usrname@server1.com:~/data/* usrname@server2.com:~/data/

Ma assicurati di capire il pericolo in questo ( man ssh_config)


Sono appena sshpassato da server1.coma server2.com, e in effetti ho risposto alla domanda e ci sono riuscito. Quindi, torno sul mio computer locale, lo faccio di nuovo e ricevo la server2.comrichiesta della password. Ma non ci riesce con:Permission denied (publickey,keyboard-interactive). lost connection
Sibbs Gioco d'azzardo

1
@SibbsGambling Penso che questo si basi sull'inoltro della tua chiave privata. Puoi accedere ad entrambi i server senza fornire una password? Potresti accedere da server1a server2senza fornire una password. Potrebbe essere necessario impostare "ForwardAgent yes".
Anthon,

1

In primo luogo è necessario verificare se si è in grado di ssh su server2 senza alcun errore, se si ottiene lo stesso errore, quindi si prega di aprire il file ~/.ssh/known_hostse cercare la chiave server2 ed eliminarlo.

Quindi controlla se sei in grado di eseguire il ping del server in base al nome host

In caso contrario, modifica entrambi i file host del server come indicato di seguito

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

Dopo aver finito con questo cd nella posizione del file che si desidera copiare sul server2

il scp file_name user@server2:/path_to_the_directory ---> puoi usare l'IP invece del nome host che puoi menzionare -Rper copiare una directory.


0

Verifica se ~/.ssh/known_hostssono presenti record adeguati per entrambi i server

Controlla anche se server1 ha un ~/.ssh/known_hostsrecord appropriato per server2


-2

È possibile utilizzare questo comando di seguito per copiare il file da un server all'altro:

scp source_user@source_remote_host:/usr/bin/mysql_backup.sh \
         target_user@target_remote_host:/var/tmp/
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.