Czas oczekiwania na połączenie SSH spowodowany brakiem aktywności jest irytujący. Oto jak utrzymać sesje SSH przy życiu i zapobiec timeoutowi SSH:
Przez wysyłanie „pakietu null” pomiędzy klientem a serwerem w określonym odstępie czasu, który jest mniejszy niż wartość timeoutu, możemy uniknąć timeoutu SSH. Nie ma znaczenia, czy pakiet jest wysyłany z klienta czy z serwera, tak długo jak trwa komunikacja między nimi.
Jeśli ustawisz swojego klienta SSH tak, aby wysyłał „pakiety null”, unikniesz timeoutu SSH na wszystkich połączeniach SSH wykonywanych z twojego komputera. Jeśli denerwuje cię, że twoje sesje SSH kończą się, gdy jesteś podłączony do serwerów, właśnie to chcesz zrobić.
Jeśli twoi klienci (klienci, użytkownicy, dzieci) mają dość timeoutu SSH, możesz albo poinstruować ich, jak skonfigurować ich klientów SSH – np. wskazując im ten artykuł – albo możesz skonfigurować sam serwer, aby uniknąć timeoutu sesji SSH. Aby to zrobić, skonfiguruj serwer SSH do wysyłania „pakietów zerowych”, a zapobiegniesz timeoutowi na wszystkich połączeniach SSH, które każdy klient wykonuje do serwera.
Na szczęście konfiguracje nie są wyłączne, więc możesz skonfigurować zarówno swojego klienta, jak i wszystkie swoje serwery, a wszystko będzie działać bezproblemowo.
Zapobieganie timeout SSH po stronie klienta
Jeśli używasz Maca lub Linuksa, możesz edytować swój lokalny plik konfiguracyjny SSH w ~/.ssh/config
i dodać następującą linię:
ServerAliveInterval 120
To będzie wysyłać „pakiet null” co 120 sekund na połączenia SSH, aby utrzymać je przy życiu.
Zapobieganie timeout SSH po stronie serwera
Jeśli jesteś administratorem serwera, możesz dodać poniższe do konfiguracji demona SSH w /etc/ssh/sshd_config
na swoich serwerach, aby zapobiec timeout klientów – więc nie muszą modyfikować swojej lokalnej konfiguracji SSH:
ClientAliveInterval 120ClientAliveCountMax 720
Spowoduje to, że serwer będzie wysyłał klientom „pakiet null” co 120 sekund i nie rozłączy ich, dopóki klient nie będzie nieaktywny przez 720 odstępów czasu (120 sekund * 720 = 86400 sekund = 24 godziny).