PuTTY / SSH: So verhindern Sie die automatische Abmeldung

11744
feklee

Der SSH-Server des ISP (Debian 2.0) meldet mich nach 35 Minuten Inaktivität ab, wenn er mit PuTTY (Windows XP) verbunden ist. Dies ist ein großes Problem, wenn ich den Server für die Portweiterleitung verwende. Die letzten Meldungen werden im Terminal angezeigt:

This terminal has been idle 30 minutes. If it remains idle for 5 more minutes it will be logged out by the system.  Logged out by the system. 

PuTTY-Optionen, die nicht helfen:

  • Senden von Nullpaketen, um die Sitzung aktiv zu halten. Sekunden zwischen Keepalives (0 zum Ausschalten): 30
  • [x] TCP-Keepalives aktivieren (Option SO_KEEPALIVE)

Irgendeine Idee, wie man die automatische Abmeldung vermeiden kann? Sollte ich einen anderen SSH-Client ausprobieren?

5
... Debian _2.0_? grawity vor 14 Jahren 0

4 Antworten auf die Frage

2
mihi

Wenn Sie nur Portweiterleitung benötigen, können Sie versuchen, das Starten einer Shell überhaupt zu deaktivieren und die Zuweisung eines Pseudo-Terminals zu deaktivieren. Dann kann das Terminal nicht mehr im Leerlauf sein.:-)

Wenn Ihr Internetdienstanbieter dies nicht zulässt, können Sie ein solches Skript in Ihrer Shell-Sitzung ausführen

while sleep 60; do echo "Still there" done 

damit das Terminal Aktivität anzeigt und nicht abgemeldet werden sollte.

Es hängt jedoch davon ab, welches Betriebssystem sie verwenden, welche Option hilfreich ist. Du hast es uns nicht erzählt, oder? uname -aist dein Freund.

Die Nichtzuweisung eines Pseudo-Terminals scheint die automatische Abmeldung zumindest in einem ersten Test tatsächlich zu verhindern. Danke für die einfache Lösung! Übrigens, ich habe dir von dem System erzählt. Sehen Sie meine Frage. feklee vor 14 Jahren 0
1
cnst

Welche Shell verwenden Sie auf dem Server?

Sie können versuchen, sich ohne Shell anzumelden, indem Sie ConnectionSSH→ markieren Don't start a shell or command at all, oder Sie können versuchen, eine andere Shell auszuführen und sicherzustellen, dass keine automatische Abmeldung aktiviert ist.

Versuchen Sie zum Beispiel Ausführen, tcshund stellen Sie autologoutdurch Ausführen sicher, dass nicht festgelegt ist unset autologout.

Shell ist "bash". Der von @mihi vorgeschlagene Pseudo-Terminal wird nicht zugewiesen. feklee vor 11 Jahren 0
1
freealx

Ich habe ein einfaches AutoHotkey-Skript, um mit jeder von Windows geöffneten Telnet / SSH-Sitzung umzugehen. Es könnte jemandem helfen:

SetTitleMatchMode 2 ; 2 - partially, 3 - exact match MyWinTitle=- PuTTY ; Describe the window for keep alive signals Timeout=180000 ; Call KeepAlive every 180 seconds (180000 ms)  ttl := Timeout / 1000 ToolTip, Keepalives every '%ttl%' seconds for the last touched '%MyWinTitle%' window`nTo stop the keepalive press F12 SetTimer, RemoveToolTip, 3000 ; Shows the tooltip for 5 seconds return  RemoveToolTip: SetTimer, RemoveToolTip, Off ; only once ToolTip Gosub, MyKeepAlive Return  MyKeepAlive: WinGetActiveTitle, Title  IfWinExist, %MyWinTitle% { WinActivate WinGet, mywin_id WinGetActiveTitle, mywin_title Send {!} MsgBox,,Info message, The window for keep-alives is '%mywin_title%',3 WinActivate, %Title% } else { MsgBox,,Exit message, Open the window first!,10 ExitApp }  SetTimer, KeepAlive, %Timeout% Return  KeepAlive: WinGetActiveTitle, Title WinGetTitle, current_title, ahk_id %mywin_id%  If current_title = %mywin_title% { WinActivate, ahk_id %mywin_id% Send {!} WinActivate, %Title% } else { MsgBox,,Exit message, The window was closed!,10 ExitApp } Return Return  F12::ExitApp ; Exit button 
0
David Spillett

Anscheinend erzwingt der Server das Timeout auf Protokollebene und ignoriert explizit die Nullpakete, die häufig verwendet werden, um eine Verbindung trotz solcher Timeouts aufrechtzuerhalten. Leider bedeutet dies, dass Sie über Client-Optionen wahrscheinlich wenig tun können.

Sie können versuchen, etwas in der Sitzung ständig zu aktualisieren, screenindem Sie eine Aktualisierungsuhr in der Statusleiste verwenden und veranlassen, wie in diesem Beispiel gezeigt . Wenn diese Uhrzeitanzeige nicht ohne Benutzereingabe aktualisiert wird, können Sie stattdessen die Bildschirmsitzung (Strg + A, Strg + S) aufteilen, das extra sichtbare Fenster sehr klein (Strg + A,: Größe ändern 2) ändern und dies in sich haben welche Auto-Updates watch -n 10 datezum Beispiel.