¿Cómo puedo hacer un túnel ssh persistente?

¿Cómo puedo hacer un túnel ssh persistente?

Tengo una computadora portátil Mac y me gustaría tener un túnel ssh persistente para poder iniciar sesión siempre desde fuera de la red local. Estoy buscando algo que funcione cuando no se pueda acceder al servidor inicialmente (por ejemplo, si no tengo una conexión a Internet cuando lo inicio) y que inicie automáticamente el túnel cuando sea posible.

Intenté poner una @reboot autosshlínea en mi crontab, pero descubrí que las sesiones comenzaban con autosshdesconexión de vez en cuando y autosshse cierran si falla el primer intento. Mi solución actual es un pequeño script y un cronjob:

# crontab
/home/blackl/bin/script &!

# script
#!/bin/sh
while true; do ssh -Ngn -R $some_port:localhost:22 $server; sleep 30; done;

¿Existe una mejor manera de hacer esto o tendré que estar contento con esto por ahora?

Respuesta1

Lo siento, esta es una respuesta muy tardía y es posible que ya haya encontrado esta solución, peroaquíAsí es como se puede hacer usando el mecanismo launchctl de OS X.

No creo que lo tengabastantebien; usaría la clave "KeepAlive" (con un valor de "verdadero") en lugar del par clave/valor obsoleto "OnDemand/false". Además, no sé por qué está reenviando al mismo puerto en el host remoto (1666) que el 22. Aún así, entiendes la idea. Tengo el mío funcionando correctamente en nuestro servidor web.MuchoMás elegante que un bucle infinito.

Ah, y en lugar delingónque él menciona, puedes usar el maravillosoControl de lanzamientopara configurarlo, modificarlo y monitorearlo. Si no está familiarizado con launchctl, le recomiendo encarecidamente que lea el manual del programa o del sitio para comprender qué está pasando. Lo siento, me habría vinculado al manual, pero no he conseguido suficiente reputación :/

información relacionada