Linux nie przekracza limitów czasu bezczynnych połączeń SSH. Możesz pozostawić połączenie SSH otwarte przez czas nieokreślony, i dopóki żaden punkt końcowy nie zostanie zrestartowany ani nie otrzyma nowego adresu IP, połączenie będzie nadal działać po uzyskaniu dostępu do niego po długim czasie bezczynności.
Jednak jeśli istnieją jakieś stanowe skrzynki pośrednie (NAT, zapora ogniowa itp.), Prawdopodobnie przekroczą one czas bezczynności połączeń. Powoduje to, że chociaż połączenie jest żywe na obu końcach, dwa punkty końcowe nie mogą się już komunikować, ponieważ skrzynka środkowa odmawia przekazania jakichkolwiek pakietów, dopóki klient SSH nie otworzy nowego połączenia.
Jeśli wiesz, czas oczekiwania na middlebox, można obejść ten problem przez skonfigurowanie ClientAliveInterval
się /etc/ssh/sshd_config
na serwerze lub ServerAliveInterval
w ~/.ssh/config
na kliencie. W celu optymalnego wykrywania przerwanych połączeń zaleca się włączenie obu ustawień. Wykryje to również zerwane połączenia, gdy którykolwiek punkt końcowy został ponownie uruchomiony lub uzyskał nowy adres IP.
Ponieważ wskazujesz, że czas oczekiwania wydaje się być tak krótki, jak kilka sekund, może to nie wystarczyć do rozwiązania problemu. Bardzo niski pozorny limit czasu może być spowodowany przeciążeniem lub nieprawidłową konfiguracją CGN. Musisz sprawdzić ruch w różnych punktach ścieżki komunikacyjnej, aby dowiedzieć się, czy CGN jest odpowiedzialny za awarie.
Jeśli okaże się, że awarie są spowodowane przez twojego ISP robiącego coś niemądrego, takiego jak połączenia z równoważeniem obciążenia przez wiele CGN, które nie współużytkują stanu połączenia, nie możesz sam rozwiązać problemu, po prostu dostosowując konfigurację SSH.
Jeśli zdarzy ci się utknąć z dostawcą usług internetowych z niewiarygodnym CGN, którego odmawiają naprawy, jedynymi pozostałymi opcjami, które znam, są albo uaktualnienie klienta i serwera do wersji jądra ze wsparciem MPTCP, albo użycie rozwiązania tunelowego zaprojektowanego tak, aby tolerować spontaniczne zmiany w mapowaniu portów na NAT.