Jak utrzymać połączenie SSH przy życiu?

12

Jak mogę utrzymać połączenie SSH przy życiu bez aktywnego korzystania z niego. Kiedy go używam, działa dobrze, ale kiedy nie używam go przez kilka minut, rozłącza się. Kiedy otrzymuję wiadomość e-mail za każdym razem, gdy się łączę, jak mogę utrzymać sesję SSH przy życiu?

Uwaga: w moim .ssh/configpliku u góry mam

Host *
ServerAliveInterval 3

ale wydaje się, że to nie działa.

NerdOfLinux
źródło
Jaki klient ssh? 3 jest za krótki, użyj odstępu 60. Możesz również umieścić to w / etc / ssh / ssh_config, jeśli masz uprawnienia roota.
Panther
*powinny być wszystkie, prawda?
NerdOfLinux
Nie sądzę, aby działało to z PuTTY
Panther
1
Sprawdź następujący adres URL instrukcji PuTTy a2hosting.com/kb/getting-started-guide/accessing-your-account/…
Haitham A. El-Ghareeb

Odpowiedzi:

11

Musisz określić liczbę prób i interwał wysyłania pakietu do serwera. W swoim .ssh/configpliku możesz umieścić następujące linie :

Host examplehost
    Hostname examplehost.com
    ServerAliveInterval 180
    ServerAliveCountMax 2

Spowoduje to wysłanie pakietu do serwera co 180 sekund (3 minuty) i spróbuje dwa razy, zanim zamknie połączenie po nieotrzymaniu odpowiedzi od klienta.

Peshmerge
źródło
2
Zupełnie zapomniałem o tym ServerAliveCountMax, co prawdopodobnie rozwiązało mój problem.
NerdOfLinux
5

W systemach operacyjnych Linux i Apple Mac OS X ~/.ssh/configplik umożliwia określenie wielu ustawień SSH, w tym tych, które utrzymują połączenie SSH. Aby to zrobić, wykonaj następujące kroki:

  1. Użyj preferowanego edytora tekstu, aby otworzyć ~/.ssh/configplik na komputerze lokalnym. Uwaga: Jeśli .sshkatalog lub plik konfiguracyjny nie istnieją, utwórz je.

  2. Dodaj następujące wiersze do pliku konfiguracyjnego. Wartością hosta może być dowolna nazwa; jest to po prostu etykieta dla innych ustawień. Wartość nazwy hosta to host zdalny, do którego chcesz uzyskać dostęp; zastąp example.com nazwą swojej domeny. Zastąp nazwę użytkownika własną nazwą użytkownika konta hostingowego:


    Host example
        Hostname example.com
        Port 7822
        User username
        ServerAliveInterval 240
        ServerAliveCountMax 2

W tej konfiguracji klient SSH wysyła pakiet do serwera co 240 sekund (4 minuty), aby utrzymać połączenie przy życiu. Jeśli klient nie otrzyma odpowiedzi po dwóch próbach (określonych w ustawieniu ServerAliveCountMax), zamyka połączenie.

Aby uzyskać szczegółowe informacje o wszystkich dostępnych ustawieniach konfiguracji SSH, wpisz man ssh_configw wierszu polecenia.

  1. Zapisz zmiany w pliku konfiguracyjnym.

  2. Połącz się ze swoim kontem za pomocą SSH. Aby to zrobić, po prostu wpisz ssh example, gdzie example reprezentuje wartość hosta określoną w kroku 2.

Monitoruj połączenie. Jeśli nadal spada, stopniowo zmniejszaj ServerAliveIntervalustawienia w pliku konfiguracyjnym, aż połączenie będzie stabilne.

Sprawdź następujący adres URL, aby uzyskać więcej informacji https://www.a2hosting.com/kb/getting-started-guide/accessing-your-account/keeping-ssh-connections-alive

Haitham A. El-Ghareeb
źródło
5

Możesz także dodać te argumenty w poleceniu ssh, tak jak ...

ssh -o ServerAliveInterval=180 -o ServerAliveCountMax=2 $HOST
trueCamelType
źródło