Mi pregunta es básicamente cómo convertir mis dos pasos existentes en uno solo.
Tengo un túnel SSH en funcionamiento configurado entre dos computadoras que usan un servidor intermediario como este:
Kubuntu_laptop--->nat_fw--->Debian_Server<--nat_fw<--Kubuntu_desktop
Lo que hago actualmente es SSH de Kubuntu_laptop a Debian_Server y luego de Debian_Server a Kubuntu_desktop. Me gustaría hacer ese único comando SSH, emitido en mi Kubuntu_laptop en bash que resulta en mi conexión al Kubuntu_desktop (shell / bash).
Los comandos que estoy usando ahora son los siguientes. Paso 1:
me@kubuntu_laptop:~$ ssh -i ~/.ssh/id_rsa admin@debian_server
Paso 2:
admin@debian_server:$ ssh -p 1234 -i /home/admin/.ssh/id_rsa admin@localhost
Luego estoy conectado a kubuntu_desktop a través de SSH (desde kubuntu_laptop).
Se requieren claves RSA para todas las conexiones SSH. El inicio de sesión con contraseña está desactivado por completo. Y observe que las cuentas de usuario de la computadora son diferentes en dos de las computadoras.
Con respecto a la conexión para esta pierna:
Debian_Server<--nat_fw<--Kubuntu_desktop
Así es como se establece:
autossh -M 5234 -N -f -R 1234:localhost:22 user@mydebian.com -p 22
Observe que Kubuntu_desktop se conecta a un intermediario como [email protected] (no admin @ debian_server). Pero cuando me conecto a Kubuntu_desktop, me conecto como usuario administrador.
No puedo cambiar el puerto de monitoreo existente (5234) o el número de puerto remoto (- R) (1234 en este ejemplo). No puedo cambiar la seguridad SSH para permitir el inicio de sesión con contraseña. No puedo abrir ningún puerto de firewall nuevo. No puedo cambiar las cuentas de usuario (excepto en la computadora portátil).
Respuestas:
Asegúrese de que netcat esté instalado en el servidor Debian y utilícelo
ProxyCommand
en su configuración SSH local (~/.ssh/config
).fuente
Gracias a @Ignacio Vazquez-Abrams, aquí están todos los pasos:
Edité config de la siguiente manera:
Los contenidos son:
Entonces solo conecta:
¡Conectado a kubuntu_desktop a través de SSH en 1 paso! Perfecto
Actualizar:
Esto lo hace más flexible:
Los nuevos contenidos son:
Entonces solo conéctate con mamá:
Y conéctate con papá:
Por supuesto, mamá y papá tienen que configurar el Paso 0 (de mi pregunta original) donde cada uno tiene su propio puerto -R definido. Ejemplo para papá:
Paso 0 (para papá):
Opcional:
fuente
ProxyCommand ssh debian_server_fqdn -W localhost:%p
así que no es necesario tener netcat en el servidor Debian.