Wie kann man verhindern, dass Autossh ab und zu hängen bleibt?

12

Ich verwende autossh, um einen umgekehrten SSH-Tunnel zu bauen, aber von Zeit zu Zeit funktioniert der Tunnel nicht mehr und ich muss autossh beenden und neu starten.

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

autossh scheint in einem seltsamen Zustand zu bleiben, in dem der weitergeleitete Port noch offen ist, Sie jedoch keine Antwort von der anderen Seite erhalten. Durch einen Neustart von autossh wird dies behoben.

Wie kann ich das Auftreten dieses Problems verhindern?

Sorin
quelle

Antworten:

6

Verwenden Sie die Option ServerAliveInterval(mit einem Wert in Sekunden), damit der ssh Client von Zeit zu Zeit ein Null-Paket (Keepalive-Paket) über den verschlüsselten Kanal sendet, um eine unterbrochene Verbindung zu erkennen:

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

Sie sollten wahrscheinlich auch die entsprechende ClientAliveIntervalEinstellung /etc/ssh/sshd_configauf Ihrem Server vornehmen, damit der Server auch tote Clientverbindungen unterbricht:

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