Tunel Inverso con SSH
Problema: quiero acceder a una máquina A que está tras un NAT y/o un firewall, tengo cuenta SSH en esa máquina
Solución: mantener una sesion SSH abierta hacia un servidor de salto en Internet, con un tunel inverso; usar ese tunel inverso para hacer un SSH de la máquina de salto hacia la máquina A
Ejemplo:
# desde la maquina A ssh -p 5847 -N -R 10022:127.0.0.1:22 email@example.com
# desde la máquina de salto ssh -p 10022 firstname.lastname@example.org
Para mantener la sesión abierta usamos autossh y para que autossh arranque al arrancar la máquina A, creamos una unidad systemd
[Unit] Description=AutoSSH reverse tunnel service for jump.you.io 100022 -> 22 After=network.target [Service] Environment="AUTOSSH_GATETIME=0" ExecStart=autossh -N -R 10022:127.0.0.1:22 email@example.com [Install] WantedBy=multi-user.target
Referencia: StackExchange