SSH-timeout på grund av inaktivitet är irriterande. Så här håller du dina SSH-sessioner vid liv och förhindrar SSH-timeout:
Du kan undvika SSH-timeout genom att skicka ett ”nollpaket” mellan klienten och servern med ett visst intervall som är mindre än timeout-värdet. Det spelar ingen roll om paketet skickas från klienten eller servern, så länge det pågår någon kommunikation mellan de två.
Om du ställer in din SSH-klient så att den skickar ”null-paket” förhindrar du en SSH-timeout på alla SSH-anslutningar du gör från din dator. Om du är irriterad över att dina egna SSH-sessioner tar timeout när du är ansluten till servrar är det här vad du vill göra.
Om dina klienter (kunder, användare, barn) är trötta på SSH-timeout kan du antingen instruera dem om hur de ska konfigurera sina SSH-klienter – som att peka på den här artikeln – eller så kan du konfigurera servern i sig själv så att du undviker SSH-sessions timeout. För att göra det ställer du in SSH-servern så att den skickar ”null-paket” och du förhindrar en timeout på alla SSH-anslutningar som varje klient gör till servern.
Tyvärr är inställningarna inte exklusiva, så du kan ställa in både din klient och alla dina servrar och allt kommer att fungera smidigt.
Förhindra SSH-timeout på klientsidan
Om du använder Mac eller Linux kan du redigera din lokala SSH-konfigurationsfil i ~/.ssh/config
och lägga till följande rad:
ServerAliveInterval 120
Detta kommer att skicka ett ”nullpaket” var 120:e sekund på dina SSH-förbindelser för att hålla dem vid liv.
Förhindra SSH timeout på serversidan
Om du är serveradministratör kan du lägga till följande i din SSH daemon config i /etc/ssh/sshd_config
på dina servrar för att förhindra att klienterna timeoutar – så att de inte behöver ändra sin lokala SSH-konfiguration:
ClientAliveInterval 120ClientAliveCountMax 720
Detta gör att servern skickar ett ”nullpaket” till klienterna var 120:e sekund och kopplar inte bort dem förrän klienten har varit inaktiv i 720 intervaller (120 sekunder * 720 = 86400 sekunder = 24 timmar).