Tengo tres computadoras.
PC1 y PC2 están en una LAN privada, donde PC1 es conocida por PC2 como192.168.0.2
PC2 y PC3 están en otra LAN, donde PC2 es conocida por PC3 como192.168.123.101
¿Cómo puedo conectarme a PC1 desde PC3 con SSH?
¿Hay algo como:
ssh [email protected] -via [email protected]
Usando SSH hay una solución clara:
en su máquina local configure su
~/.ssh/config
tal que tenga lo siguiente:Tanto en la puerta de enlace como en el servidor final al que desea conectarse, asegúrese de tener las claves públicas de su cliente local ubicadas en
~/.ssh/authorized_keys
En la máquina de la puerta de enlace, debe modificar el
~/.ssh/authorized_keys
modo que, al comienzo de la línea que especifica la clave pública de su cliente, agregue el comando forzado de la siguiente manera:El
-A
es reenviar al agente si no desea enviar contraseñas todo el tiempo ...De esta manera, cada vez que haga algo así
ssh WhatYouWillCallTheConnection
, se ejecutará directamente a través de la puerta de enlace y lo conectará al servidor en el otro lado de forma transparente.fuente
ssh -A
si no confía en el administrador de la máquina de la puerta de enlace. No puede obtener su clave privada, pero siempre que esté conectado a la puerta de enlacessh -A
, puede usar el agente reenviado para conectarse a otras máquinas como usted.El reenvío de puertos puede ser útil.
Desde PC1:
7777 puede ser cualquier puerto (siempre que no se esté utilizando). Simplemente me gusta ese número, más cualquier "pedido" que pueda administrar por +1 (7778, 7779, etc., etc.).
Una vez hecho esto, tendrá un túnel 'transparente' desde el puerto local 7777 de la PC1 hasta el puerto 22 de la PC3. Solo emita:
Y deberías estar en PC3.
También puede usar -D para reenviar dinámicamente un puerto si desea establecer un proxy SOCKS.
¡Salud!
fuente
La respuesta 2017+ (desde ssh v7.3) a esto es ProxyJump :
ssh -J user@jumphost user@destination
, que es la abreviatura de:
ssh -o "ProxyJump user@jumphost" user@destination
Esto se puede acortar
ssh dest
con un~/.ssh/config
fragmento como tal:fuente
La única solución que conozco para esto es ssh scripting con Belier :
Hace un tiempo encontré este README.sshhop en la página de inicio del MIT Lincoln Laboratory, pero no pude encontrar más información al respecto. ¿Alguien sabe más?
fuente