Linuxový ssh server ve výchozím nastavení nikdy neodpojuje ssh relaci od serveru, zkontrolujte konfiguraci přepínače/routeru/firewallu, abyste se vyhnuli problému beze změny konfigurace ssh serverů/klientů. Pokud se relace ssh odpojuje kvůli nečinnosti a chcete to zastavit, postupujte podle níže uvedených kroků na straně klienta nebo serveru, jak je popsáno níže:
Nastavení na straně klienta
Chcete-li povolit zachování života v celém systému (vyžadován přístup root), upravte konfigurační soubor /etc/ssh/ssh_config . Podobně, chcete-li nastavit nastavení pouze pro konkrétního uživatele, upravte ~/.ssh/config (vytvořte soubor, pokud neexistuje). Vložte následující:
Host * ServerAliveInterval 300 ServerAliveCountMax 2
Tato nastavení způsobí, že klient nebo server SSH odešle na druhou stranu každých 300 sekund (5 minut) nulový paket a vzdá se, pokud neobdrží žádnou odpověď ani po 2 pokusech, kdy je připojení pravděpodobně ukončeno. stejně zahozeny.
Z manuálové stránky ssh_config:
ServerAliveCountMax:
Nastavuje počet aktivních zpráv serveru (viz níže), které mohou být odeslány, aniž by ssh(1) obdrželo nějaké zprávy zpět ze serveru. Pokud je tohoto prahu dosaženo během odesílání aktivních zpráv serveru, ssh se odpojí od serveru a ukončí relaci. Je důležité poznamenat, že použití zpráv serveru je velmi odlišné od TCPKeepAlive (níže). Zprávy serveru jsou zasílány prostřednictvím šifrovaného kanálu, a proto je nelze podvrhnout. Volba TCP keepalive povolená TCPKeepAlive je spoofable. Mechanismus aktivního serveru je cenný, když klient nebo server závisí na tom, že bude vědět, kdy se připojení stalo neaktivní.
Výchozí hodnota je 3. Pokud je například ServerAliveInterval (viz níže) nastaven na 15 a ServerAliveCountMax je ponechán na výchozí hodnotě, pokud server přestane reagovat, ssh se odpojí přibližně po 45 sekundách. Tato možnost platí pouze pro protokol verze 2; v protokolu verze 1 neexistuje žádný mechanismus pro vyžádání odpovědi ze serveru na aktuální zprávy serveru, takže za odpojení odpovídá zásobník TCP.
ServerAliveInterval:
Nastavuje časový limit v sekundách, po kterém, pokud ze serveru nejsou přijata žádná data, ssh(1) odešle zprávu přes šifrovaný kanál s žádostí o odpověď ze serveru. Výchozí hodnota je 0, což znamená, že tyto zprávy nebudou odeslány na server, nebo 300, pokud je nastavena možnost BatchMode. Tato možnost platí pouze pro protokol verze 2. ProtocolKeepAlives a SetupTimeOut jsou aliasy kompatibility specifické pro Debian pro tuto možnost.
Nastavení na straně serveru
Pokud máte administrátorský přístup k serveru, můžete nakonfigurovat možnosti ClientAliveInterval, TCPKeepAlive a ClientAliveCountMax v konfiguračním souboru SSHd. Cesta k souboru je /etc/ssh/sshd_config
# vi /etc/ssh/sshd_config ClientAliveInterval 30 TCPKeepAlive yes ClientAliveCountMax 99999
Aby se změny projevily, budete muset restartovat SSH server.
# service sshd restart