¿Cómo puedo usar el comando scp para copiar archivos entre dos servidores remotos desde mi PC local?
servidor remoto 1: IP = 67.12.21.133 y puerto = 6774
servidor remoto 2: IP = 67.129.242.40 y puerto = 6774
scp -rp -P 6774 [email protected]: /home/denny/testapp1.txt [email protected]:
Da un error después de dar una contraseña de 67.12.21.133,
ssh: conectarse al host 67.129.242.40 puerto 22: conexión rechazada
conexión perdida
Respuestas:
Puede usar
~/.ssh/config
para especificar los puertos que se usarán para los hosts (y para configurar muchas otras cosas buenas; consulte la página de manualman ssh_config
):Al hacer esto, debe usar la opción
-3
scp, que copia los archivos a través de su máquina local. De lo contrario, scp emite el comando scp a través de ssh en el primer host, por lo que realmente se ejecutay luego se usa ~ / .ssh / config del primer host remoto (67.12.21.133) en lugar del local.
Cuando haya configurado
~/.ssh/config
correctamente, esto debería funcionar:Por supuesto, también puede copiar el contenido del archivo ~ / .ssh / config en su primer host remoto, y luego puede usar scp sin la
-3
opción, lo que probablemente acelerará la transferencia.O puede usar el truco que usa scp y usar dicha línea de comando:
(Tenga en cuenta el caso diferente del parámetro de puerto para ssh y scp:
ssh -p 6774
vs.scp -P 6774
)PD: Obtuve esta información del OpenSSH bugzilla donde ingresé esto como un error: https://bugzilla.mindrot.org/show_bug.cgi?id=2020
fuente
No encontré una solución fácil, pero podría intentar usar sshfs de la siguiente manera:
Otra forma podría ser usar ssh (en realidad no probado con éxito):
Actualmente no encuentro la forma correcta de ingresar las dos contraseñas. Pide algunas veces las dos contraseñas, pero no acepta a nadie. Quizás si intercambias las claves ssh entre los hosts funciona. Porque usted no necesita las contraseñas.
¿Espero que esto ayude? Thomas
fuente
De acuerdo con esta página en el blog de Linux Academy, simplemente necesita usar la
-P 6774
opción justo antes de la segunda ruta remota también:Cada uso de la
-P
bandera se aplica solo a la siguiente ubicación en la línea de comando, no al comando completo. Cualquier ubicación que no tenga una-P
distancia entre ella y la ruta anterior (o el nombre del comando [scp
]) se establece de manera predeterminada en el puerto estándar (22).fuente
-P: No such file or directory
.scp
que se menciona aquí.Si necesita transferir datos de un servidor a otro, use el comando SCP. Para hacerlo
Simplemente presione Ctrl+ Alt+ Ten su teclado para abrir Terminal. Cuando se abra, ejecute el siguiente comando.
Nota: El parámetro -P se puede usar si desea mencionar el número de puerto.
fuente