SCP entre dos redes

SCP entre dos redes

Necesito transferir un archivo entre dos computadoras que no están conectadas a la misma red. Conseguí una tercera computadora que puede ver ambas redes a través de una VPN.

Desde la tercera computadora puedo hacer:

scp root@firstcomputer:./file ./

Y finaliza la transferencia con la siguiente frase:

scp ./file root@secondcomputer:./

Pero no puedo hacerlo en una sola línea, de la siguiente manera:

scp root@firstcomputer:./file root@secondcomputer:./

La respuesta de error es

ssh: connect to host secondcomputer port 22: No route to host
lost connection

Me doy cuenta de que probablemente se deba a que la primera computadora no puede ver la segunda computadora. ¿Es posible darle a SCP un parámetro que se ocupe del hecho de que la máquina que ejecuta el programa SCP es la única que puede ver ambas computadoras?

Por cierto, la tercera computadora es una Mac con Lion y la primera y la segunda ejecutan Debian.

Respuesta1

Debería poder utilizar un túnel SSH.

Suponiendo que está intentando transferir un archivo desde una computadora remota ("remota") a su computadora local ("local"), establezca el túnel a través de la tercera computadora ("puerta de enlace") escribiendo esto en su computadora local:

ssh -fNL 12345:remote:22 gatewaylogin@gateway

Luego puedes ejecutar una cantidad ilimitada de comandos SCP en este túnel (aún escribiendo en tu computadora local):

scp -P 12345 remotelogin@localhost://path/to/remote/file /local/path/where/you/want/file

Acabo de probar esto en mi red y funcionó perfectamente.

El método anterior está bien si la red remota es segura, pero si no lo es, deberá establecer un túnel entre el local y la puerta de enlace, y otro túnel entre la puerta de enlace y la remota, vinculando los dos mediante un número de puerto común.

Respuesta2

La opción scp -3 debería ser lo que estás buscando. Para ponerlo en tu ejemplo:

scp -3 root@firstcomputer:./file root@secondcomputer:./

Tenga en cuenta que la opción -3 se introdujo por primera vez en OpenSSH 5.7, que se lanzó a principios de 2011.

Respuesta3

Puedes probar esto:

root@firstcomputer:./file /tmp && scp /tmp/file root@secondcomputer:./ && rm /tmp/file

Esto copiará el archivo en el directorio /tmp de la tercera computadora y, si tiene éxito, volverá a copiar ese archivo en la computadora secundaria y luego se limpiará solo. Dado que está utilizando el operador &&, cada comando solo se ejecutará si el comando anterior tiene éxito.

información relacionada