Używam ssh -p8520 username@remote_host
do logowania do zdalnego serwera.
Problem :
Jest zawsze podłączony i działa poprawnie, gdy jestem w miejscu pracy. Niestety terminal zawiesza się po 10-15 minutach od połączenia się ze zdalnym serwerem z domu.
Na konsoli nie ma raportu o błędzie / przekroczeniu limitu czasu, ale kursor nie może się już poruszać.
Kiedy wchodzisz, wby sprawdzić użytkowników logujących, niektórzy użytkownicy zombie są tam i muszę ich zabić ręcznie.
To dość denerwujące. Czy ktoś może mi pomóc?
screen
. Może to jakiś problem z przekroczeniem limitu czasu.screen
pomaga utrzymać działanie programu. Niestety czasami muszę pracować na zdalnym serwerze :(screen
tylko to mówisz ? Może rozwiązać problem utraconego połączenia? Niescreen -S screenName
? Zawsze używam ekranu z-S
i-r
screen
. Wydaje się, że już to wiesz;)Odpowiedzi:
Demon ssh (sshd), który działa po stronie serwera, zamyka połączenie po stronie serwera, jeśli klient ucichnie (tzn. Nie wysyła informacji). Aby zapobiec utracie połączenia, poinstruuj klienta ssh, aby od czasu do czasu wysyłał do serwera sygnał oznak życia.
Konfiguracja tego znajduje się w pliku
$HOME/.ssh/config
, utwórz plik, jeśli nie istnieje (plik konfiguracyjny nie może być czytelny dla całego świata, więc uruchom gochmod 600 ~/.ssh/config
po utworzeniu pliku). Aby wysyłać sygnał co np. Cztery minuty (240 sekund) do zdalnego hosta, umieść w tym pliku konfiguracyjnym:Aby umożliwić wysyłanie sygnału podtrzymania aktywności dla wszystkich hostów, umieść następującą zawartość w pliku konfiguracyjnym:
źródło
ServerAliveInterval
podczas korzystania z serweraClientAliveInterval
. Co za bałagan.Chciałem jednorazowego rozwiązania:
Zapisano w aliasie:
Teraz można połączyć w następujący sposób:
źródło
Host *
&ServerAliveInterval 240
(lub podać nazwę hosta, jeśli chcesz go tylko tak,[email protected]
jak w odpowiedzi rockymonkey555? Ustawienie aliasu nie wydaje się w żaden sposób łatwiejszealias ssh='ssh -o ServerAliveInterval=60'
ServerAliveInterval
się60
, świetnie. Jednak użycie aliasu bash, gdy można go użyć,.ssh/config
jest po prostu głupie.Dla tych, którzy zastanawiają się, @ edward-coast
Jeśli chcesz ustawić utrzymanie aktywności serwera , dodaj to do
/etc/ssh/sshd_config
:źródło
ClientAliveInterval
pozwolić, aby serwer sprawdził, czy klient żyje, czy powinienem pozwolić, aby klientServerAliveInterval
wielokrotnie „pingował” serwer ? Oba wydają się nie mieć sensuClientAliveInterval
na serwerze tylko, jeśli chcesz, aby serwer rozłączał się w przypadku martwych połączeń, które nie odpowiadają, i możesz dostosować częstotliwość i czas wystąpienia takiej awarii.Użytkownicy FYI Putty mogą tutaj ustawić opcje
źródło
Możemy utrzymać nasze połączenie ssh przy użyciu następujących globalnych konfiguracji
Dodaj następujący wiersz do
/etc/ssh/ssh_config
pliku:źródło