¿Usar SCP sobre una cadena SSH existente? ¿Posible?

¿Usar SCP sobre una cadena SSH existente? ¿Posible?

SCP establece una nueva conexión al copiar archivos, lo que a veces puede dificultar la tarea si hay firewalls involucrados.

Por ejemplo,

Host-A <--> Host-B <--> Host-C <--> Host-D

  • El Host-A se conecta al Host-B a través de SSH, y luego el Host-B se conecta al Host-C a través de SSH y luego al Host-D.
  • El Host-A no puede conectarse a otras computadoras que no sean el Host-B, el Host-B solo puede conectarse al Host-A y al Host-C, el Host-C solo puede conectarse al Host-B y al Host-D, y el último Host-D puede sólo conéctese al Host-C.

El comando (en Host-D)scp /home/usuario/archivo Host-A:/home/usuario/nuevoarchivoIntentaré crear un nuevo túnel SSH entre los dos, que no es lo que quiero. Quiero que la cadena de túnel SSH existente copie el archivo nuevamente a través de los hosts anteriores hasta que llegue al Host-A.

¿Cómo puedo hacer esto?

Respuesta1

Puede reutilizar las conexiones existentes. Utilice el modificador de línea de comandos -Mo la opción de configuración (cliente) ControlMaster. Veresta respuestaen StackOverflow para más detalles.

He usado esto ampliamente, combinado con ControlPersistto para cerrar la conexión solo después de un retraso. Esto evita el tiempo de conexión en el que de otro modo incurriría y mejora drásticamente el rendimiento cuando cierra y se vuelve a conectar varias veces (como hago a menudo durante el uso interactivo).

Tenga en cuenta que no funciona muy bien para conectarse a algunos hosts (GitHub, por ejemplo), por lo que es posible que deba excluir explícitamente ciertos hosts del uso de esta opción, si la configura como predeterminada.

información relacionada