Scp de un servidor a otro servidor?


34

Estoy tratando de copiar archivos de un servidor directamente a otro, sin pasar por mi computadora local.

yo si

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

¿Es esto posible? ¿Cómo puedo arreglarlo?


¿Puede publicar el resultado del siguiente comando: scp -r -v usrname@server1.com: ~ / data / * usrname@server2.com: ~ / data /
pragmático

Respuestas:


55

Algo que uso con bastante frecuencia cuando no hay conexión posible entre los dos servidores

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

fuente

-3 Las copias entre dos hosts remotos se transfieren a través del host local. Sin esta opción, los datos se copian directamente entre los dos hosts remotos. Tenga en cuenta que esta opción deshabilita el medidor de progreso.

Asumiendo que tiene una buena conexión con ambos, no es demasiado lento.


Además, si necesita usar puertos especiales en ambos servidores: superuser.com/questions/686394/…
Pit

No olvide agregar la -rbandera si está copiando un directorio.
Taylor Edmiston

16

Sí, esto es posible, pero solo si se server1.compuede llegar server2.comusando ese nombre. Si no, probablemente recibirá un mensaje:ssh: connect to host server2 port 22: Connection refused

La manpágina scpindica claramente que copia entre hosts en una red y que:

También se permiten copias entre dos hosts remotos.

Lo que debe hacer (una vez) es sshhacia username@server1.comy desde allí sshhasta username@server2.com. Responda la pregunta de autenticidad que obtendrá con sí, para deshacerse del mensaje de verificación de la clave del host mientras realizascp

Es posible que deba habilitar el agente de reenvío con:

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

Pero asegúrese de darse cuenta del peligro en eso ( man ssh_config)


Acabo de sshpasar de server1.coma server2.com, y de hecho respondí la pregunta y lo logré. Luego, vuelvo a mi computadora local, lo vuelvo a hacer y obtengo el server2.commensaje de contraseña. Pero falla allí con:Permission denied (publickey,keyboard-interactive). lost connection
Sibbs Gambling

1
@SibbsGambling Creo que esto se basa en reenviar su clave privada. ¿Puede iniciar sesión en ambos servidores sin proporcionar una contraseña? ¿Podría iniciar sesión desde server1hasta server2sin proporcionar una contraseña? Puede que tenga que configurar "ForwardAgent yes".
Anthon

1

En primer lugar, debe verificar si puede enviar ssh al servidor2 sin ningún error; si obtiene el mismo error, abra el archivo ~/.ssh/known_hostsy busque la clave del servidor2 y elimínelo.

Luego verifique si puede hacer ping al servidor por el nombre de host

De lo contrario, edite el archivo host del servidor como se menciona a continuación.

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

Una vez que haya terminado con este CD en la ubicación del archivo que desea copiar al servidor2

la scp file_name user@server2:/path_to_the_directory ---> Puede utilizar la IP en lugar del nombre de host se puede mencionar -Ra copiar un directorio.


0

Compruebe si ~/.ssh/known_hoststiene registros adecuados para ambos servidores

Compruebe también si el servidor1 tiene el ~/.ssh/known_hostsregistro adecuado para el servidor2


-2

Puede usar este comando a continuación para copiar archivos de un servidor a otro:

scp source_user@source_remote_host:/usr/bin/mysql_backup.sh \
         target_user@target_remote_host:/var/tmp/
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.