Časový limit SSH z důvodu nečinnosti je nepříjemný. Zde je návod, jak udržet relace SSH při životě a zabránit časovému limitu SSH:
Posíláním „nulového paketu“ mezi klientem a serverem v určeném intervalu, který je menší než hodnota časového limitu, můžeme časovému limitu SSH zabránit. Nezáleží na tom, zda je paket odesílán z klienta nebo ze serveru, pokud mezi nimi probíhá nějaká komunikace.
Pokud nastavíte klienta SSH tak, aby odesílal „nulové pakety“, zabráníte časovému limitu SSH u všech připojení SSH, která ze svého počítače navážete. Pokud vás štve, že vám při připojení k serverům vynechávají vlastní relace SSH, je to to, co chcete udělat.
Pokud vaše klienty (zákazníky, uživatele, děti) štve vynechávání relací SSH, můžete je buď poučit, jak mají nastavit své klienty SSH – například je odkázat na tento článek – nebo můžete nakonfigurovat samotný server tak, aby vynechávání relací SSH zamezil. To provedete tak, že nastavíte SSH server tak, aby odesílal „nulové pakety“, a zabráníte tak timeoutu všech SSH spojení, která každý klient naváže se serverem.
Naštěstí se tato nastavení nevylučují, takže můžete nastavit jak svého klienta, tak všechny servery a vše bude probíhat bez problémů.
Zabraňte časovému limitu SSH na straně klienta
Pokud používáte Mac nebo Linux, můžete upravit svůj místní konfigurační soubor SSH v ~/.ssh/config
a přidat následující řádek:
ServerAliveInterval 120
Tento řádek bude každých 120 sekund odesílat „nulový paket“ na spojení SSH, aby je udržel při životě.
Zabránit vypršení časového limitu SSH na straně serveru
Jste-li správcem serveru, můžete do konfigurace démona SSH v /etc/ssh/sshd_config
na serverech přidat následující řádek, který zabrání vypršení časového limitu klientů – nebudou tak muset upravovat svou místní konfiguraci SSH:
ClientAliveInterval 120ClientAliveCountMax 720
To způsobí, že server pošle klientům každých 120 sekund „nulový paket“ a neodpojí je, dokud klient nebude neaktivní po dobu 720 intervalů (120 sekund * 720 = 86400 sekund = 24 hodin).