Eu uso o autossh assim em minha máquina de trabalho para configurar o desenvolvimento remoto da web:
autossh -M0 -N -R \*:8080:localhost:80 -R \*:5051:localhost:22 home
O autossh é um programa que continua reiniciando o ssh se ele travar ou parar por qualquer razão diferente de "kill -9". O comando acima configura dois túneis: um para encaminhar a porta 80 em minha máquina de trabalho para 8080 em minha máquina doméstica, o outro encapsula o servidor ssh em minha máquina de trabalho para minha máquina doméstica. O * na frente da porta faz este trabalho com qualquer nome de host, não apenas localhost. Talvez seja necessário definir "GatewayPorts yes" no seu sshd_config para que isso funcione. Eu tenho hosts em ~ / .ssh / config e / etc / hosts em minha máquina doméstica para tornar isso ainda mais transparente. Para outros sistemas, é necessário usar o ProxyCommand ( link ), mas não tenho o host que uso este comando com ligado no momento para agarrá-lo.
~ / .ssh / config:
Host work
hostname localhost
port 5051
Então é só
autossh -M0 -t home 'ssh work'
de qualquer host para se conectar.