Verhindern Sie ein Timeout der SSH-Verbindung / ein Rohrbruch

Beides als Benutzer von Windows sowie von Mac (in den letzten 10 Jahren) Ich habe viel Zeit in verbracht SSH-Verbindungen zu Webservern, E-Mail-Servern, Cloud- und anderen Sicherungspaketen. Die bevorzugte Distribution von Linux ist zweifellos CentOS.

Eines der stressigsten Dinge für Serveradministratoren ist SSH-Verbindungen zu unterbrechen. Entweder plötzlich beim Knöpfen in Putty oder Terminal (meistens ein lokales Verbindungsproblem) oder nach einer Weile von "Leerlauf”- der Zeitraum, in dem es über die SSH-Sitzung nicht mit dem Remote-Server interagiert.

Wenn Sie mit der Mac und verwenden Sie das Terminal-Tool für die Remoteverbindung über SSH. Nach einer gewissen Zeit der Inaktivität wurden Sie mit der Meldung getrennt: „client_loop: send trennen: Pipe gebrochen”. Ich gab die Lösung in den Artikel hier, in dem ich sagte, dass es in "hinzugefügt werden kann/etc/ssh/ssh_config" die Linie:

Host *
ServerAliveInterval 120

Die obige Lösung gilt für Benutzer von Macund ehrlich gesagt die neuesten Updates von macOS Ich habe nichts dagegen restart Änderungen an der Datei "ssh_config", Und das Problem beim Trennen einer Leerlaufsitzung kehrt zurück.

Eine Lösung, mit der wir verhindern können, dass eine SSH-Sitzung in einer von festgelegten Entfernung getrennt wird Terminal (macOS) oder Kitt (Windows), ist wie neben “ServerAliveInterval”Von unserem Computer aus, um den Remote-Server zu bestimmen, der regelmäßig mit der SSH-Anwendung / dem SSH-Client kommunizieren soll.
Deshalb müssen wir die Richtlinie setzen "ClientAliveInterval"In"sshd_configAuf dem Server, zu dem wir eine Verbindung herstellen.

Zeitlimit für SSH-Verbindung / Rohrbruch verhindern (ssh_config-Tipps)

1. Wir stellen eine Verbindung zu dem Server her, den wir aktivieren möchten, und legen ein Zeitintervall für "ClientAliveInternal" fest. Wir öffnen SSH in Putty, Terminal oder einem anderen ähnlichen Dienstprogramm und authentifizieren uns beim Benutzer root.

ssh root@server.hostname

2. Führen Sie die Befehlszeile aus, um die Datei "sshd_config" zu durchsuchen, wenn "ClientAliveInterval" aktiv ist und welcher Zeitraum festgelegt ist.

sudo grep "ClientAliveInterval" /etc/ssh/sshd_config

In unserem Szenario ist "ClientAliveInterval" deaktiviert und der Zeitintervallwert ist Null.

[root@buffy ~]# sudo grep "ClientAliveInterval" /etc/ssh/sshd_config
#ClientAliveInterval 0
[root@buffy ~]# 

Der Hashtag "#"Vor eine Linie gestellt, bricht sie ab. Sie ist inaktiv.

3. Wir öffnen mit dem Herausgeber "nano"Oder"vim"Datei"sshd_config“. Ich bevorzuge "Nano".

sudo nano /etc/ssh/sshd_config

4. Löschen “#"Vor der Linie"ClientAliveInterval”Und stellen Sie eine Anzahl von Sekunden ein: 60, 120…

ClientAliveInterval 120
ClientAliveCountMax 10

5. Speichern Sie die Änderungen und restartIch habe den Service "sshd".

sudo systemctl restart sshd

ClientAliveInterval : Dies ist das Zeitintervall in Sekunden, in dem der Server ein Nulldatenpaket an den Client / die Anwendung sendet, über die wir mit dem Server verbunden sind. Diese Praxis hält die Verbindung am Leben / aktiv.

ClientAliveCountMax : Nicht reagierende SSH-Clients in 10 Zyklen von 120 Sekunden (von "ClientAliveInterval" festgelegt) Die Verbindung wird unterbrochen. Das heißt, nach 20 Minuten, in denen der SSH-Client nicht auf vom Server gesendete Nullpakete geantwortet hat.

Mit diesen Änderungen wird die SSH-Verbindung stabiler und bleibt genauso sicher.

Technikbegeistert teste und schreibe ich gerne Tutorials zu Betriebssystemen about macOSLinux, Windows, über WordPress, WooCommerce und LEMP Webserver-Konfiguration (Linux, NGINX, MySQL und PHP). ich schreibe weiter StealthSettings.com seit 2006, und ein paar Jahre später begann ich, auf iHowTo.Tips Tutorials und Neuigkeiten über Geräte im Ökosystem zu schreiben Apple: iPhoneiPad Apple Uhr, HomePod, iMac, MacBook, AirPods und Zubehör.

Hinterlasse einen Kommentar