Leerlaufzeitlimit für SSH-Sitzung


9

Die Solaris-Maschine, auf der wir den größten Teil unserer Entwicklung durchführen, hat die lästige Angewohnheit, SSH-Sitzungen zu beenden. Es spielt keine Rolle, ob der Client mein Ubuntu-Desktop, mein Solaris-Desktop oder mein Windows-Desktop (Kitt) ist. Der gemeinsame Faktor ist die große Solaris-Maschine.

Kann ich irgendetwas tun, um dies zu verhindern? Es ist ärgerlich, wenn Sie eine Mittagspause einlegen und die Terminalsitzungen, die Sie geöffnet und sorgfältig konfiguriert haben, alle eingefroren sind. Sie müssen sie also alle beenden und Ihren gesamten Kontext wiederherstellen.

Antworten:


8

Ja. Konfigurieren Sie SSH so, dass Keepalive-Pakete gesendet werden .


Wir haben bereits "KeepAlive Yes" in der / etc / ssh / sshd_config. Es hatte jedoch keinen ClientAliveInterval-Wert. Also habe ich das hinzugefügt und wir werden sehen, wie das geht.
Andrew

1
Es ist auch erwähnenswert, dass Sie es auch umgekehrt machen können. Wenn Sie die Serverkonfiguration nicht ändern konnten, können Sie den ssh-Client veranlassen, die Keep-Alive-Pakete stattdessen mithilfe von ServerAliveInterval zu senden.
SpoonMeiser

Der Speicherort dieses Artikels wurde geändert. Hier ist die aktuelle: forumone.com/blogs/post/quick-tip-ssh-keepalive
John Bachir

2

Ich habe festgestellt, dass das Keepalive-Verhalten nicht ganz funktioniert hat. Ich habe versucht, das ServerAliveInterval zum Skript ~ / .ssh / config hinzuzufügen, aber es funktioniert nicht gut mit git.

Am Ende habe ich meiner Statusleiste "Bildschirm" einen Zeitstempel hinzugefügt. Dies ist genug Aktivität, um die Verbindung aufrechtzuerhalten.


Wenn Sie diese Funktionalität außerhalb von Bildschirm (1) wünschen, überprüfen Sie Spinner
Drew Stephens

1

Sie können Putty so konfigurieren, dass auch Keep-Alive-Pakete gesendet werden.

In Einstellungen, Verbindung, Sekunden zwischen Keepalives.


1

Zuerst müssen Sie feststellen, ob es Ihre Shell ist, die Sie abmeldet oder ssh. Zum Testen ssh in Ihren Remote-Computer und vi oder weniger eine Datei.

Wenn Sie sich noch lange später mit weniger / vi bewegen können, ist ssh in Ordnung. Bestimmen Sie in diesem Fall, welche Shell Sie verwenden, und deaktivieren Sie das Zeitlimit. Es ist höchstwahrscheinlich die Shell, die Sie auslöst und nicht SSH. Einige Firewalls schließen jedoch inaktive Sitzungen, wenn keine Keep Alives gesendet werden.

Der Solaris-Administrator verhindert möglicherweise, dass Sie das Zeitlimit in Ihrer Shell deaktivieren, indem Sie die Einstellung schreibgeschützt machen. Dies ist unwahrscheinlich, aber möglich. Sie können dies normalerweise umgehen, indem Sie eine andere Shell verwenden.


1

Wenn Sie Probleme haben, Ihre Shell erneut zu konfigurieren, können Sie den GNU-Bildschirm verwenden. Wenn Ihre SSH-Sitzung abgelaufen ist, melden Sie sich einfach erneut an und stellen Sie die Verbindung wieder her. Ihre Shell wird dann so sein, wie sie war.


0

Wenn Sie tcsh auf dem Solaris-Computer ausführen, kann die Autologout-Variable festgelegt werden. Wenn Sie dies auf 0 setzen (autologout = 0 setzen) oder deaktivieren (autologout deaktivieren), werden Sie nicht mehr abgemeldet.


0

Dies kann ein roter Hering sein, aber versuchen Sie es

unset TMOUT

an Ihrer Shell-Eingabeaufforderung. Das hat in der Vergangenheit sicherlich bei mir funktioniert, aber ich kann mich nicht erinnern, ob es auf bestimmte Architekturen (oder Muscheln) beschränkt ist.



0

Sie könnten topin einem anderen Terminal laufen ? Das sollte regelmäßigen Verkehr erzeugen?


0

Spinner klingt nach der perfekten Lösung für Ihr Problem. Es sendet regelmäßig Zeichen in Ihrer Sitzung, um eine Zeitüberschreitung zu vermeiden.


-1

Ich hatte immer Erfolg mit 'ClientAliveInterval 300' auf Linux / BSD-Servern.


-1

Überprüfen Sie Ihre sshdKonfiguration auf Zeilen wie diese in /etc/ssh/sshd_config:

ClientAliveInterval 600
ClientAliveCountMax 0
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.