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.

Andrew
quelle

Antworten:

8

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

Sophie Alpert
quelle
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.

Andrew
quelle
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.

justinhj
quelle
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.

Brianegge
quelle
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.

staticsan
quelle
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.

Jimmy Hedman
quelle
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.

dr-jan
quelle
0

Geben Sie Ihr Shell-Profil ein

exportiere TMOUT = 0

export TIMEOUT = 0

Setatakahashi
quelle
0

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

Rory
quelle
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.

Drew Stephens
quelle
-1

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

afa
quelle
-1

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

ClientAliveInterval 600
ClientAliveCountMax 0
Frank
quelle