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 [email protected]:~/data/* [email protected]:~/data/
Password: 
Host key verification failed.
lost connection

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

Sibbs Gambling
fuente
¿Puede publicar el resultado del siguiente comando: scp -r -v [email protected]: ~ / data / * [email protected]: ~ / 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.

exussum
fuente
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 [email protected]y desde allí sshhasta [email protected]. 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 [email protected]:~/data/* [email protected]:~/data/

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

Anthon
fuente
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.

Mestizo
fuente
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

Romeo Ninov
fuente
-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/
karthik m
fuente