Linux führt keine Zeitüberschreitung für inaktive SSH-Verbindungen durch. Sie können eine SSH-Verbindung auf unbestimmte Zeit offen lassen. Solange keiner der Endpunkte neu gestartet wurde oder eine neue IP-Adresse erhalten hat, funktioniert die Verbindung auch nach einer langen Leerlaufzeit, wenn Sie darauf zugreifen.
Wenn jedoch zustandsbehaftete Middleboxen (NAT, Firewall usw.) vorhanden sind, treten bei diesen wahrscheinlich Zeitüberschreitungen für inaktive Verbindungen auf. Dies hat zur Folge, dass die beiden Endpunkte nicht mehr miteinander kommunizieren können, obwohl die Verbindung an beiden Enden aktiv ist, da die Middlebox die Weiterleitung von Paketen verweigert, bis der SSH-Client eine neue Verbindung öffnet.
Wenn Sie das Timeout des middlebox kennen, können Sie durch die Konfiguration um das Problem zu umgehen ClientAliveIntervalin /etc/ssh/sshd_configauf dem Server oder ServerAliveIntervalin ~/.ssh/configauf dem Client. Für eine optimale Erkennung unterbrochener Verbindungen ist es ratsam, beide Einstellungen zu aktivieren. Dadurch werden auch unterbrochene Verbindungen erkannt, wenn einer der Endpunkte neu gestartet wurde oder eine neue IP-Adresse erhalten hat.
Da Sie angeben, dass das Zeitlimit manchmal nur wenige Sekunden beträgt, reicht dies möglicherweise nicht aus, um Ihr Problem zu lösen. Ein sehr geringes scheinbares Zeitlimit kann durch ein überlastetes oder falsch konfiguriertes CGN verursacht werden. Sie müssen den Datenverkehr an verschiedenen Punkten des Kommunikationspfads überprüfen, um herauszufinden, ob ein CGN für die Fehler verantwortlich ist.
Wenn sich herausstellt, dass die Fehler dadurch verursacht werden, dass Ihr ISP etwas Dummes tut, z. B. Lastausgleichsverbindungen über mehrere CGNs, die den Verbindungsstatus nicht gemeinsam nutzen, können Sie das Problem nicht selbst beheben, indem Sie einfach Ihre SSH-Konfiguration anpassen.
Wenn Sie mit einem ISP mit einem unzuverlässigen CGN nicht weiterkommen, dessen Behebung er ablehnt, sind die einzigen mir bekannten Optionen, entweder Client und Server auf Kernelversionen mit MPTCP-Unterstützung zu aktualisieren oder eine Tunnellösung zu verwenden, die spontan toleriert Änderungen in den Portzuordnungen auf dem NAT.