Tenemos la siguiente situación:
- Mi maquina
- Una máquina de entrada
- La maquina objetivo
No tengo derechos de root en ambos # 2 y # 3. Tampoco puedo realmente almacenar información (no más de 200 MiB) en la máquina # 2 (ya que es una puerta de entrada al resto de la red, no más que eso). En la máquina # 3 hay una carpeta, de aproximadamente 3 GiB de tamaño, que quiero copiar a local. No puedo SSH de # 1 a # 3, pero puedo SSH a # 2 y luego a # 3. Tampoco es posible configurar un par de claves público privado entre # 2 y # 3, pero hay un par de claves instalado entre # 1 y # 2.
Normalmente uso la combinación de SSH y alquitrán para hacer esto:
ssh name@host "tar cf - folder" > folder.tar
Pero en este caso eso requeriría algún tipo de anidamiento, y parece que no puedo hacer esto.
Entonces, ¿cuál sería una buena manera de obtener los datos del # 3 al # 1?
fuente
ProxyCommand
yssh -W
los dosssh
comandos se pueden combinar en una sola línea de comando. Si tiene una versión muy reciente del cliente OpenSSH, hay un argumento que le permitirá hacerlo todo con un solossh
comando.También puede usar la capacidad de sesión maestra de las versiones más nuevas de SSH. Se describe aquí:
https://en.wikibooks.org/wiki/OpenSSH/Cookbook/Multiplexing
Probablemente todo lo que necesita es editar / crear su .ssh / config. Agregue las definiciones que controlan las sesiones maestras:
Luego puede especificar su definición de servidor de primer salto como:
Y el segundo salto usará su servidor de primer salto como proxy:
No olvides crear el directorio ~ / .ssh / cm_socket y los permisos de configuración deben ser 644.
Entonces debería poder SSH o SCP directamente desde / hacia su segundo servidor. Puede haber más servidores encadenados como este.
fuente
ControlMaster
sea necesario Multiplexar / para poder hacer proxy. La página más relevante en ese wikibook es esta: en.wikibooks.org/wiki/OpenSSH/Cookbook/Proxies_and_Jump_Hosts