escribir un script para comprobar si el túnel ssh está activado

escribir un script para comprobar si el túnel ssh está activado

Tengo un túnel ssh configurado de la siguiente manera:

ssh -N -L 1105:remote.server:25 office-machine&

Quiero escribir un script para configurar una verificación, digamos una vez por minuto (lo que puedo hacer usando un trabajo cron, tal vez), que verificará si esta conexión está activa; de lo contrario, configurará la conexión (si vpn está activado). ).

¿Qué hago para realizar la verificación del túnel ssh?

Gracias de antemano.

PD: lo intenté

autossh -N -L 1105:remote.server:25 office-machine&

pero sale. Sospecho que las opciones son correctas. De hecho, la página de manual/ayuda indica que no hay opciones -N y -L, sino solo -f y -M.

Respuesta1

Puedes usar autosshpara esto. Citandola página de manual de Ubuntu:

 autossh is a program to start a copy of ssh and monitor it, restarting it as necessary
 should it die or stop passing traffic.

 The original idea and the mechanism were from rstunnel (Reliable SSH Tunnel). With version
 1.2 of autossh the method changed: autossh uses ssh to construct a loop of ssh forwardings
 (one from local to remote, one from remote to local), and then sends test data that it
 expects to get back. (The idea is thanks to Terrence Martin.)

Por lo tanto, se debe especificar un puerto de monitoreo adicional autossh. Elija algún puerto N para que tanto N como N+1 estén libres y utilícelo con la -Mopción, por ejemplo,

autossh -M 20000 -N -L 1105:remote.server:25 office-machine

También puedes desactivar la monitorización con -M 0. En sistemas basados ​​en Debian, autosshpuede elegir un puerto libre para monitorear automáticamente.


Si su conexión VPN muere, autosshdebe detectar a través del puerto de monitoreo que la conexión SSH ya no está activa y luego intentar reiniciarla. Después:

Continued failures
 If the ssh connection fails and attempts to restart it fail in quick succession, autossh
 will start delaying its attempts to restart, gradually backing farther and farther off up to
 a maximum interval of the autossh poll time (usually 10 minutes).  autossh can be "prodded"
 to retry by signalling it, perhaps with SIGHUP ("kill -HUP").

información relacionada