Kiedy jestem ssh'ed na jednym z naszych serwerów biurowych (na których działa Fedora 10) z domu, moja sesja kończy się po dość krótkim okresie aktywności (około 5 minut). Próbowałem używać TcpKeepAlive
po stronie klienta, bez skutku.
Nie rozumiem tego, że jeśli jestem w biurze w firmowej sieci LAN, mogę pozostawić sesję nieaktywną przez cały dzień bez przekroczenia limitu czasu, więc zachowanie wydaje się zależeć od mojej lokalizacji.
Wszelkie pomysły, dlaczego tak się dzieje i jak zapobiec przekroczeniu limitu czasu, gdy nie jestem w sieci LAN? Używam klienta terminalu w systemie Mac OSX, jeśli to pomaga.
AKTUALIZACJA - Sugestia Dave'a Dragera, by użyć ServerAliveInterval
zestawu do wartości niezerowych z, TcpKeepAlive=no
zadziałało dla mnie. Jeśli chodzi o inne odpowiedzi, ClientAlive
... ustawienia nie są akceptowane przez klienta SSH Mac OSX.
Jest to prawdopodobnie spowodowane tym, że gdy łączysz się z domu, przechodzisz przez zaporę sieciową, która zamyka sesję TCP po krótkim czasie. Ale TcpKeepAlive powinien tego unikać. Czy włączyłeś TcpKeepAlive po stronie klienta czy po stronie serwera?
źródło
Cały czas otrzymuję to przez połączenie Comcast. Problem polega na tym, że interwał utrzymywania aktywności klienta SSH jest zbyt długi dla limitu czasu skonfigurowanego na ścieżce sieciowej. Jeśli korzystasz z systemu Linux, możesz zmodyfikować wartości
ServerAliveInterval
iServerAliveCounter
, aby były niższe niż ich wartości domyślne. Ta wartość jest ustawiana w sekundach. Ogólnosystemowy plik konfiguracyjny znajduje się (ogólnie) w/etc/ssh/ssh_config
. Ustawienie tych dwóch ANDTcpKeepAlive
powinno pomóc w utrzymaniu połączenia.źródło
Jak mówi promień, niektóre zapory ogniowe z pełnym stanem zapominają połączenia po pewnym (zwykle konfigurowalnym) czasie i nie pozwalają na dalszą komunikację dla połączenia; spodziewają się, że połączenie zacznie się od TCP SYN (odsyłam do twojej komunikacji SSH tutaj).
Jest inna możliwość. Ścieżka sieciowa między Twoim domem a biurem może mieć straty (w rodzaju pakietu). Podczas próby wpisania na kliencie SSH, jeśli link utknął na jakiś czas, klient może się poddać i zawieść.
Konfiguracja Keepalive na kliencie obsłuży pierwszy przypadek tutaj, ale nie może pomóc w drugim przypadku. Zapora zwykle znajduje się na obrzeżach biura i dlatego może być konfigurowalna. Pomogłoby to również w pierwszym punkcie.
Aby sprawdzić, czy występują przerywane straty łącza, można pozostawić aktywne polecenie ping w tle na komputerze klienta.
źródło
Możesz także dodać ustawienia sugerowane przez innych jako domyślne w
~/.ssh/config
pliku, więc nie musisz ich przekazywać zassh
każdym razem, gdy inicjujesz połączenie:nano ~/.ssh/config
i dodaj:źródło