Wie mache ich Kitt, um meine Sitzung nach einiger Zeit nicht zu unterbrechen?

34

Jedes Mal puttywird die Sitzung nach einiger Zeit geschlossen, wenn sie inaktiv ist.

Es gibt keinen timeParameter für Putty. Wie kann ich meine puttySSH-Sitzung also immer am Leben erhalten?

cnd
quelle

Antworten:

15

Eine weitere zu überprüfende Sache ist, ob Ihr System die Umgebungsvariable TMOUT setzt. Um dies zu überprüfen, können Sie einfach Folgendes tun:

env | grep TMOUT

oder

echo $TMOUT

Wenn es aktiviert ist, können Sie es ändern oder deaktivieren. So ändern Sie den Wert:

export TMOUT=3600

Wobei die Zahl die Anzahl der Sekunden ist, bis Sie abgemeldet werden. Andernfalls deaktivieren Sie es, um die Funktion zu deaktivieren:

unset TMOUT

Beachten Sie, dass dies möglicherweise von Ihrem Systemadministrator aus Sicherheitsgründen festgelegt wurde. Wenn Sie nicht der Systemadministrator sind, können Sie dies überprüfen, bevor Sie selbst Änderungen vornehmen.

Oldtimer
quelle
48

Aktivieren Sie SSH-Keep-Alives, indem Sie die folgende Einstellung auf einen positiven Wert ändern:

Seite "Verbindung" des PuTTY-Konfigurationsdialogs

Ein Wert von 300 sollte in den meisten Fällen ausreichen. (5 Minuten.) Dadurch sendet PuTTY in regelmäßigen Abständen SSH-Nullpakete an den Remote-Host, damit die Sitzung nicht unterbrochen wird.

Beachten Sie, dass wir dass die SO_KEEPALIVEOption auf dieser Seite nicht weiter unten angezeigt werden soll. Dies ist ein Mechanismus auf einer viel niedrigeren Ebene, der am besten nur verwendet wird, wenn das Protokoll auf Anwendungsebene keinen eigenen Keepalive-Mechanismus hat. Da SSH dies tut, sollten wir in diesem Fall keine TCP-Keepalives verwenden.

Es gibt andere Dinge, die dazu führen können, dass Verbindungen unterbrochen werden, aber dies ist eine gute erste Sache, die Sie versuchen sollten. Wenn dies nicht funktioniert, müssen Sie sich mit folgenden anderen Dingen befassen: VPN-Zeitüberschreitungen, Router-Zeitüberschreitungen, Änderungen der Einstellungen auf dem Remote-SSH-Server, unzuverlässige Verbindungen usw.

Warren Young
quelle
3
Alternativ können Sie auch etwas ausführen, das eine kontinuierliche Ausgabe erzeugt, z. B. topwenn Sie nicht da sind.
LawrenceC
1
@ultrasawblade: Das ist ein Klebebandfix; Es behandelt lediglich das Symptom, geht jedoch nicht auf das eigentliche Problem ein.
Kevin M
Gilt diese Konfiguration für Windows CLI? Ich meine, anstatt Sitzungen zu speichern, erstelle ich Links zu putty.exe und übergebe Anmeldeinformationen als Argumente (putty.exe host -l root -pw password). Wenn nicht, gibt es ein Argument, um diese Option über die CLI anzuwenden?
Mc Kernel
3
Dies ist eine hervorragende Lösung, insbesondere wenn Sie an einer instabilen Verbindung arbeiten und keine einzige Änderung am Server vornehmen müssen (im Gegensatz zur akzeptierten Lösung).
Itoctopus
Weiß jemand, wie man dies über cmd-Zeile angibt?
Janac Meena
8

Zusätzlich zu den anderen Antworten würde ich vorschlagen screen, dass Sie die Sitzung selbst dann verwalten können, wenn der Putty beendet wird (Verbindungsabbruch, VPN-Ausfall usw.).

Arcege
quelle
6

Aktivieren Sie die folgende Option in PuTTY:

Bildbeschreibung hier eingeben

Franck Dernoncourt
quelle
Leider wird SO_KEEPALIVE anscheinend nur alle paar Stunden gesendet (zumindest standardmäßig). Ein besserer Name für sie wäre also "check if dead's" LOL
Rogerdpack 10.10. Um
3

Führen Sie dies einfach auf Ihrem Kitt aus, um sicherzustellen, dass Ihre Sitzung alle 10 Minuten aktiviert wird.

 while true; do date; sleep 600; done
KKN
quelle
Ich führe dies immer auf meinem Server aus und es funktioniert nicht.
Koksud
1

Wenn keiner der oben genannten nicht geholfen hat,
genannten Probleme Sie die sshd-Konfiguration Ihres Systems ändern!
Beachten Sie, dass Sie dafür Root-Berechtigungen benötigen!

Bearbeiten Sie Ihre sshd_config Datei, in meinem Fall wurde es gefunden/etc/ssh/sshd_config

Inhalt war:

ClientAliveInterval 300  
ClientAliveCountMax 0

ändern:

ClientAliveInterval 6000  
ClientAliveCountMax 3

Nicht vergessen

service sshd restart
Hi-zir
quelle
1

Sie können den topBefehl in der Shell-Eingabeaufforderung verwenden. So bleibt Ihre Sitzung am Leben.

Piyush Agrawal
quelle
Dies scheint eher eine Problemumgehung als eine Lösung zu sein.
Kusalananda
@ Kusalananda Ich denke, Workarounds können auch Lösungen sein.
Peterh sagt, Monica
0

Connection>SSHVerwenden Sie im Kittmenü den folgenden Wert als Remote command: bash --rcfile <(echo 'source ~/.bash_profile; unset TMOUT').

Psychosklave
quelle