unix - puerto - ¿Cómo transferir un archivo entre dos servidores remotos usando scp desde una tercera máquina local?
transferir archivos de windows a linux ssh (5)
Encuentro que -o "ForwardAgent yes”
hace el truco:
localA $ scp -o "ForwardAgent yes” userB@remoteB:/path/to/file userC@remoteC:/path
Me gusta esto mejor que el -3
ya que no quiero que una máquina intermedia ralentice las cosas. También me gusta la respuesta de @RubenCaro, pero esto parece más directo.
Estoy intentando copiar un archivo de un servidor remoto a otro servidor remoto desde mi máquina local . Esto es lo que estoy tratando de hacer
localA $ scp userB@remoteB:/path/to/file userC@remoteC:/path
El problema es que necesito pasar dos contraseñas para el usuario B y el usuario C en las máquinas remotas.
Según Garron lo anterior debería funcionar, pero me negaron el permiso.
Permission denied (gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive).
lost connection
¿Alguna sugerencia?
Esta pregunta ya existe en Superusuario:
https://superuser.com/questions/686394/scp-between-two-remote-hosts-from-my-third-pc
scp -3 user1@remote1:/home/user1/file1.txt user2@remote2:/home/user2/file1.txt
Como se describe, la opción -3 le indica a scp que enrute el tráfico a través de la PC en la que se emite el comando.
Lo anterior es cierto si remote1 y remote2 están en la misma red.
En caso de no: - Tienes que usar el reenvío de puertos.
Esto es posible usando la siguiente línea de comando en el terminal de linux:
scp -3 usuario1 @ ip: ruta / desde / directorio / usuario2 @ ip: ruta / hacia / directorio
aparecerá un mensaje pidiendo contraseñas como esta:
Contraseña de user1 @ ip: Contraseña de user2 @ ip:
Si da las dos contraseñas en orden presionando Intro después de la primera contraseña, debería aceptarlas pero no lo hará. Incluso si da las dos contraseñas nuevamente en orden, pero al no presionar intro después de la primera contraseña, no se aceptará nuevamente.
Primero debe ingresar al usuario2, luego presione Entrar y luego escriba la contraseña del usuario1 y presione Entrar. Esto funcionará.
Sé que no suena bien, pero solo esto funcionará. Este es un error en scp.
Si puede ssh a ambos servidores remotos desde su local (local -> remote1 & local -> remote2), podría intentar:
ssh -A -t user1@remote1 scp srcpath user2@remote2:destpath
Esto se transferirá directamente de remote1 a remote2 usando sus credenciales locales hasta el final.
Si no desea que se le pidan las contraseñas, debe configurar el archivo authorized_keys en los controles remotos.
Solo necesita contraseñas si no tiene entradas en el archivo authorised_keys. Una vez que haya iniciado sesión en los 2 servidores (localA -> remoteB & remoteB -> remoteC) y haya establecido la conexión segura, su comando original debería funcionar.