¿Cómo evitar que autossh se atasque de vez en cuando?

12

Estoy utilizando autosshpara construir un túnel ssh inverso, pero de vez en cuando el túnel deja de funcionar y necesito matar a autossh e iniciarlo nuevamente.

/etc/cron.d/autossh
@reboot autossh -f -nNT -R 3269:intranet.example.com:3269 public.example.com &

autossh parece permanecer en un estado extraño, donde el puerto reenviado todavía está abierto pero no obtiene respuesta del otro lado. Al reiniciar autossh, esto se resuelve.

¿Cómo puedo evitar que ocurra este problema?

sorin
fuente

Respuestas:

6

Utilice el ServerAliveInterval(con un valor en segundos) para que el ssh cliente envíe un paquete nulo (keepalive) a través del canal cifrado cada cierto tiempo para detectar una conexión interrumpida:

/etc/cron.d/autossh
@reboot autossh -f -nNT -R 3269:intranet.example.com:3269 -o ServerAliveInterval=30 public.example.com &

Probablemente también debería establecer la ClientAliveIntervalconfiguración correspondiente en /etc/ssh/sshd_configsu servidor para que el servidor también desconecte las conexiones de cliente muertas:

# Drop dead client connections after 10 minutes of inactivity
ClientAliveInterval 600
Tyson
fuente