Jak zrobić kit, aby po pewnym czasie nie przerywać sesji?


34

Za każdym razem puttysesja kończy się po pewnym czasie, jeśli jest bezczynna.

Nie ma timeparametru na kit, więc jak mogę zachować moją puttysesję ssh zawsze Żywą?

Odpowiedzi:


15

Inną sprawą do sprawdzenia jest to, czy system ustawia zmienną środowiskową TMOUT. Aby to sprawdzić, wystarczy:

env | grep TMOUT

lub

echo $TMOUT

Jeśli jest ustawiony, możesz go zmienić lub rozbroić. Aby zmienić wartość:

export TMOUT=3600

Gdzie liczba jest liczbą sekund do wylogowania. W przeciwnym razie wyłącz go, aby wyłączyć funkcję:

unset TMOUT

Uwaga: być może administrator systemu ustawił to ze względów bezpieczeństwa. Jeśli więc nie jesteś administratorem systemu, możesz to sprawdzić przed samodzielną zmianą.


48

Włącz utrzymanie aktywności SSH, zmieniając następujące ustawienie na wartość dodatnią:

Strona połączenia w oknie dialogowym Konfiguracja PuTTY

W większości przypadków wystarczy 300. (5 minut.) Powoduje to, że PuTTY okresowo wysyła pakiety zerowe SSH do zdalnego hosta, aby sesja nie przekroczyła limitu czasu.

Pamiętaj, że nie chcemy, aby ta SO_KEEPALIVEopcja była niższa na tej stronie. Jest to znacznie niższy poziom mechanizmu, który najlepiej jest stosować tylko wtedy, gdy protokół na poziomie aplikacji nie ma własnego mechanizmu utrzymywania aktywności. SSH tak robi, więc w tym przypadku nie powinniśmy używać pakietów podtrzymujących TCP.

Są inne rzeczy, które mogą powodować zrywanie połączeń, ale jest to solidna pierwsza rzecz do wypróbowania. Jeśli to nie zadziała, musisz przyjrzeć się innym rzeczom: limity czasu VPN, limity czasu routera, zmiany ustawień na zdalnym serwerze SSH, niestabilne połączenia itp.


3
Alternatywnie uruchom coś, co generuje ciągłą wydajność, na przykład topgdy Cię nie ma.
LawrenceC,

1
@ultrasawblade: To jest poprawka do taśmy izolacyjnej; jedynie leczy objaw, ale nie rozwiązuje prawdziwego problemu.
Kevin M

Czy ta konfiguracja dotyczy interfejsu wiersza polecenia systemu Windows? To znaczy, zamiast zapisywać sesje, tworzę linki do putty.exe przekazując dane logowania jako argumenty (putty.exe host -l root -pw hasło). Jeśli nie, to czy jest jakiś argument, aby zastosować tę opcję poprzez CLI?
Mc Kernel,

3
Jest to doskonałe rozwiązanie, zwłaszcza gdy pracujesz na niestabilnym połączeniu i nie musisz dokonywać żadnej zmiany na serwerze (w przeciwieństwie do przyjętego rozwiązania).
itoctopus

Czy ktoś wie jak to określić za pomocą linii cmd?
Janac Meena,

8

Oprócz innych odpowiedzi, sugerowałbym bieganie, screenaby móc zarządzać sesjami, nawet jeśli putty się zakończy (połączenie umiera, VPN spada, itp.).


6

Sprawdź następującą opcję w PuTTY:

wprowadź opis zdjęcia tutaj


Niestety, SO_KEEPALIVE wydaje się być wysyłane co kilka godzin (przynajmniej domyślnie), więc lepszą nazwą dla nich byłoby „sprawdź, czy nie żyje” LOL
rogerdpack,

3

Po prostu uruchom to na swojej kitu, upewnij się, aby aktywować sesję co 10 minut.

 while true; do date; sleep 600; done

Zawsze uruchamiam to na moim serwerze i to nie działa.
Cokedude

1

Jeśli żadne z powyższych nie pomogło,
musisz zmienić systemowe konfiguracje sshd!
PAMIĘTAJ, ŻE POTRZEBUJESZ W TYM POZWOLENIU NA ROOT!

Edytuj sshd_config plik, w moim przypadku został on zlokalizowany/etc/ssh/sshd_config

treść była:

ClientAliveInterval 300  
ClientAliveCountMax 0

zmień na:

ClientAliveInterval 6000  
ClientAliveCountMax 3

Nie zapomnij

service sshd restart


0

W Connection>SSHmenu kitu użyj następującej wartości jako Remote command: bash --rcfile <(echo 'source ~/.bash_profile; unset TMOUT').

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.