Limit czasu bezczynności sesji ssh


9

Maszyna Solaris, na której wykonujemy większość prac rozwojowych, ma irytujący zwyczaj ograniczania czasu sesji SSH. Nie ma znaczenia, czy klient jest moim komputerem z systemem Ubuntu, komputerem z systemem Solaris, czy komputerem z systemem Windows (kit); wspólnym czynnikiem jest duża maszyna Solaris.

Czy mogę coś zrobić, aby temu zapobiec? To denerwujące, gdy robisz sobie przerwę na lunch, a otwarte sesje terminalu i delikatnie skonfigurowane są zamrożone, więc musisz je wszystkie zabić i przywrócić cały kontekst.

Odpowiedzi:


8

Tak. Skonfiguruj SSH, aby wysyłał pakiety utrzymywania aktywności .


Mamy już „KeepAlive Yes” w / etc / ssh / sshd_config. Nie miał jednak wartości ClientAliveInterval; więc to dodałem i zobaczymy, jak to będzie.
Andrew

1
Warto również zauważyć, że możesz to zrobić również na odwrót. Jeśli nie możesz zmienić konfiguracji serwera, możesz poprosić klienta ssh o wysłanie pakietów utrzymania przy użyciu ServerAliveInterval.
SpoonMeiser

Lokalizacja tego artykułu uległa zmianie. Oto bieżący: forumone.com/blogs/post/quick-tip-ssh-keepalive
John Bachir

2

Przekonałem się, że zachowanie zachowawcze nie do końca działało. Próbowałem dodać ServerAliveInterval do skryptu ~ / .ssh / config, ale nie działa z git.

Skończyło się na dodaniu znacznika czasu do paska stanu „ekranowego”. Jest to wystarczająca aktywność, aby utrzymać połączenie.


Jeśli chcesz tę funkcję poza ekranem (1), sprawdź Spinner
Drew Stephens

1

Możesz skonfigurować Putty, aby wysyłał również pakiety utrzymania aktywności.

W Ustawieniach, Połączenie, Sekundy między Keepalives.


1

Najpierw musisz ustalić, czy to twoja powłoka wylogowuje cię czy ssh. Aby przetestować, ssh na zdalnym komputerze i vi lub mniej plik.

Jeśli po dłuższym czasie nadal możesz poruszać się po mniej / vi, ssh jest w porządku. W takim przypadku określ używaną powłokę i wyłącz limit czasu. Najprawdopodobniej jest to powłoka, która ogranicza czas, a nie SSH. Jednak niektóre zapory zamkną nieaktywne sesje, jeśli nie zostaną wysłane żadne żywe.

Administrator systemu Solaris może uniemożliwić wyłączenie limitu czasu w powłoce, ustawiając ustawienie tylko do odczytu. Jest to mało prawdopodobne, ale możliwe. Zwykle można to obejść, używając innej powłoki.


1

Jeśli masz problem z ponowną konfiguracją powłoki, możesz użyć ekranu GNU. Jeśli upłynie limit czasu sesji SSH, po prostu zaloguj się ponownie i połącz ponownie, a powłoka będzie taka, jaka była.


0

Jeśli uruchomisz tcsh na komputerze Solaris, można ustawić zmienną autologout. Jeśli ustawisz tę wartość na 0 (ustaw autologout = 0) lub ją rozbroisz (odblokuj autologout), przestanie Cię wylogowywać.


0

To może być czerwony śledź, ale spróbuj

unset TMOUT

na polecenie powłoki. To z pewnością działało dla mnie w przeszłości, ale nie pamiętam, czy jest ograniczone do niektórych architektur (lub powłok).



0

Mógłbyś biegać topw innym terminalu? To powinno generować regularny ruch?


0

Błystka brzmi jak idealne rozwiązanie twojego problemu. Okresowo wysyła postacie w twojej sesji, aby nie przekroczyć limitu czasu.


-1

Zawsze miałem sukces z „ClientAliveInterval 300” na serwerach linux / bsd.


-1

Sprawdź sshdkonfigurację dla takich linii w /etc/ssh/sshd_config:

ClientAliveInterval 600
ClientAliveCountMax 0
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.