Comment éviter que l'autossh ne reste bloqué de temps en temps?

12

J'utilise autosshpour construire un tunnel ssh inverse mais de temps en temps le tunnel cesse de fonctionner et j'ai besoin de tuer autossh et de le redémarrer.

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

autossh semble rester dans un état étrange, où le port redirigé est toujours ouvert mais vous n'obtenez aucune réponse de l'autre côté. En redémarrant l'autossh, cela est résolu.

Comment puis-je éviter ce problème?

Sorin
la source

Réponses:

6

Utilisez le ServerAliveInterval(avec une valeur en secondes) pour que le ssh client envoie un paquet nul (keepalive) sur le canal crypté de temps en temps afin de détecter une connexion rompue:

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

Vous devriez probablement également définir le ClientAliveIntervalparamètre correspondant /etc/ssh/sshd_configsur votre serveur pour que le serveur supprime également les connexions clientes mortes:

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