450 Stimmen

Sitzung aktiv halten

Ich verwende ssh -p8520 Benutzername@remote_host um mich auf dem Remote-Server anzumelden.

Problem:

Es ist immer verbunden und funktioniert einwandfrei, wenn ich am Arbeitsplatz bin. Leider friert das Terminal 10 - 15 Minuten nach der Verbindung mit dem Remote-Server von zu Hause aus ein.

Es gibt keine Fehler-/Timeout-Meldung auf der Konsole, aber der Cursor kann sich nicht mehr bewegen.

Wenn ich w eingebe, um die angemeldeten Benutzer zu überprüfen, sind dort einige Zombie-Login-Benutzer vorhanden, die ich manuell beenden muss.

Das ist ziemlich ärgerlich. Kann mir jemand helfen?

775voto

rockymonkey555 Punkte 7840

Der ssh-Daemon (sshd), der auf der Serverseite läuft, trennt die Verbindung von der Serverseite, wenn der Client inaktiv wird (d. h. keine Informationen sendet). Um einen Verbindungsverlust zu verhindern, weisen Sie den ssh-Client an, dem Server hin und wieder ein Lebenszeichen-Signal zu senden.

Die Konfiguration dafür befindet sich in der Datei $HOME/.ssh/config. Erstellen Sie die Datei, wenn sie noch nicht existiert (die Konfigurationsdatei darf nicht für alle lesbar sein, daher führen Sie nach dem Erstellen der Datei chmod 600 ~/.ssh/config aus). Um das Signal beispielsweise alle vier Minuten (240 Sekunden) an den Remote-Host zu senden, fügen Sie folgendes in die Konfigurationsdatei ein:

Host remotehost
    HostName remotehost.com
    ServerAliveInterval 240

Um das Senden eines Keep-Alive-Signals für alle Hosts zu aktivieren, platzieren Sie den folgenden Inhalt in der Konfigurationsdatei:

Host *
    ServerAliveInterval 240

310voto

Ryan Punkte 5709

Ich wollte eine einmalige Lösung:

ssh -o ServerAliveInterval=60 myname@myhost.com

Habe es in einem Alias gespeichert:

alias sshprod='ssh -v -o ServerAliveInterval=60 myname@myhost.com'

Jetzt kann ich mich so verbinden:

me@MyMachine:~$ sshprod

85voto

Jeff Davenport Punkte 2536

Für alle, die sich fragen, @edward-coast

Wenn Sie das Keep-Alive für den Server konfigurieren möchten, fügen Sie dies zu /etc/ssh/sshd_config hinzu:

ClientAliveInterval 60
ClientAliveCountMax 2

ClientAliveInterval: Legt ein Timeout-Intervall in Sekunden fest, nach dem, wenn keine Daten vom Client empfangen wurden, sshd(8) über den verschlüsselten Kanal eine Nachricht sendet, um eine Antwort vom Client anzufordern.

ClientAliveCountMax: Legt die Anzahl der Client-Alive-Nachrichten (siehe unten) fest, die gesendet werden dürfen, ohne dass sshd(8) Nachrichten vom Client zurückerhält. Wenn dieser Schwellenwert erreicht wird, während Client-Alive-Nachrichten gesendet werden, wird sshd den Client trennen und die Sitzung beenden.

38voto

Ruben Benjamin Punkte 617

putty Einstellungen

FYI Putty-Benutzer können die Optionen hier einstellen

17voto

minhas23 Punkte 8655

Wir können unsere SSH-Verbindung aufrechterhalten, indem wir folgende globale Konfigurationen haben

Fügen Sie die folgende Zeile zur Datei /etc/ssh/ssh_config hinzu:

ServerAliveInterval 60

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X