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.

Andrzej
źródło

Odpowiedzi:

8

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

Sophie Alpert
źródło
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.

Andrzej
źródło
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.

justinhj
źródło
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.

Brianegge
źródło
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.

staticsan
źródło
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ć.

Jimmy Hedman
źródło
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).

dr-jan
źródło
0

Wpisz swój profil powłoki

eksport TMOUT = 0

eksport TIMEOUT = 0

setatakahashi
źródło
0

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

Rory
źródło
0

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

Drew Stephens
źródło
-1

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

afa
źródło
-1

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

ClientAliveInterval 600
ClientAliveCountMax 0
Szczery
źródło