![Archivos SCP entre 2 vms](https://rvso.com/image/1345309/Archivos%20SCP%20entre%202%20vms.png)
Tengo 2 máquinas virtuales. La primera máquina virtual es donde se almacenan los archivos fuente. La segunda máquina virtual es donde está mi script bash y debería copiar archivos desde el origen a mi segunda máquina virtual.
¿Cómo puedo hacer esto en Bash?
¿Es posible transferir archivos SCP de 1 máquina virtual a una segunda máquina virtual en Bash, cuando mi script se ejecuta en la tercera máquina? Si es así, por favor muéstrame cómo hacer esto.
Respuesta1
¡Es posible (siempre que ambos hosts estén escuchando en SSH y el primer host remoto pueda ver el segundo)! ¿Por qué no lo intentas?
scp remote1:/path/to/file remote2:/path/to
Es posible que deba proporcionar nombres de usuario o contraseñas para ambos hosts (si su nombre de usuario varía de una máquina a otra).
Si utiliza la autenticación basada en agente con el reenvío de agente habilitado, no debería necesitar proporcionar ninguna contraseña (este es mi método de trabajo preferido).
Tenga en cuenta que esto no tiene nada que ver con Bash (ni siquiera con las máquinas virtuales) y debería funcionar en cualquier shell.
Respuesta2
La forma habitual de hacer esto es ingresar a una de las máquinas remotas y emitir el scp desde allí.
#3rd-vm> ssh 2nd-vm
#2nd-vm> scp file 1st-vm:~/
Respuesta3
Si necesita conectarlo a través de la tercera máquina, puede hacerlo con ssh de esta manera:
ssh remote1 cat file | ssh remote2 'cat > file'
O con alquitrán:
ssh remote1 tar cf - path/to/copy | ssh remote2 tar xf - -C path/to/dest