Jak rozwiązać połączenie ssh zamknięte przez zdalny host z powodu braku aktywności?


14

Obecnie próbuję ssh do colo, po 1-2 minutach bezczynności otrzymuję:

superuser@thecolo:~$ Connection to 10.123.45.67 closed by remote host.
Connection to 10.123.45.67 closed.
mylocalmac:~ superuser$

Tak długo, jak piszę coś w terminalu ssh, połączenie jest zachowywane. Jak tylko wydarzy się 1–2 min bezczynności, otrzymam powyższą wiadomość. Komputer, z którym próbuję się połączyć, to 64-bitowa wersja serwera Ubuntu 12.04.1 LTS. To nie jest fizyczny serwer, ale gościnny VMware. Sshing z terminala Mac.

Proszę nie mylić tego pytania z podobnymi na tej stronie ze słowem kluczowym ssh_exchange_identification, jest to niezwiązane.

Odpowiedzi:


17

Dodaj następujące elementy do $ HOME / .ssh / config, a wszystkie połączenia ssh będą wysyłały TCPKeepAlive co 30 sekund:

TCPKeepAlive yes
ServerAliveInterval 30

nie można znaleźć pliku konfiguracyjnego na serwerze
insoftservice

Możesz utworzyć plik w swoim katalogu domowym, jeśli nie istnieje
balkian

9

Jeśli łączysz się z komputerem z systemem Linux, możesz użyć niektórych opcji bezpośrednio z wiersza polecenia

TCPKeepAlive: Wykorzystuje opcję KEEPALIVE protokołu TCP / IP, aby utrzymać połączenie przy życiu po określonym czasie bezczynności. W większości systemów oznacza to 2 godziny. Tak więc, po przekazaniu do protokołu SSH opcji TCPKeepAlive, klient SSH wyśle ​​zaszyfrowany pakiet do serwera SSH, utrzymując połączenie TCP działające i działające.

ssh -o TCPKeepAlive=yes user@some.host.com

ServerAliveInterval: Ustawia limit czasu w sekundach, który jest określony przez ciebie, z którego, jeśli żadne klienty nie będą wysyłane z klienta SSH do serwera SSH, SSH wyśle ​​zaszyfrowane żądanie do serwera na odpowiedź TCP. Aby przesyłać żądanie co 30 sekund:

ssh -o ServerAliveInterval=30 user@some.host.com

Źródło


0

Musisz „zachować aktywność”

W zależności od klienta może to być trywialne lub po prostu łatwe - nie powinno być trudniejsze!

Na przykład w szpachli jest to opcja połączenia (ustaw keepalive na wartość niezerową)


Gdzie ustawić utrzymanie aktywności? Na serwerze czy z mojego komputera Mac? Gdzie mam ustawić tę wartość i jaka jest zalecana wartość?
Thierry Lam

Keepalive będzie na kliencie ... w twoim przypadku na twoim Macu. Gdzieś będzie opcja!
Andrew
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.