Om du spenderar mycket tid på kommandoraden kan du ha stött på ett irriterande problem där sessionen tar slut efter en relativt kort period av inaktivitet. Även om detta är önskvärt ur ett säkerhetsperspektiv kan det orsaka problem när du försöker utföra en långvarig operation.
Vad som vanligtvis händer är att din anslutning till servern nollställs när du har varit inaktiv ett tag, vilket vanligtvis ger felet: Anslutningen återställs av peer. För att kringgå detta måste du ställa in ett Keep Alive-alternativ på servern.
I den här guiden får du lära dig hur du förhindrar timeout för SSH-anslutningar och håller din SSH-session vid liv även efter viss inaktivitet i Linux.
Höj SSH Connection Timeout
På servern går du till konfigurationsfilen /etc/ssh/sshd_config
.
$ sudo vi /etc/ssh/sshd_config
Skrolla och leta upp följande parametrar:
#ClientAliveInterval #ClientAliveCountMax
Där,
-
ClientAliveInterval
: Ställer in ett timeoutintervall i sekunder efter vilket, om inga data har tagits emot från klienten, sshd kommer att skicka ett meddelande genom den krypterade kanalen för att begära ett svar från klienten. Standardvärdet är 0, vilket anger att dessa meddelanden inte skickas till klienten. Det här alternativet gäller endast för protokollversion 2. -
ClientAliveCountMax
: Ställer in antalet meddelanden om levande klient som kan skickas utan att sshd får några meddelanden tillbaka från klienten. Om det här tröskelvärdet uppnås medan meddelanden om levande klient skickas, kopplar sshd bort klienten och avslutar sessionen.
Timeoutvärdet ges av produkten av ovanstående parametrar i.e.
Timeout value = ClientAliveInterval * ClientAliveCountMax
Till exempel, låt oss säga att du har definierat dina parametrar enligt följande:
ClientAliveInterval 1200ClientAliveCountMax 3
Timeoutvärdet kommer att vara 1200 sekunder * 3 = 3600 sekunder. Detta motsvarar 1 timme, vilket innebär att din ssh-session kommer att hållas vid liv under en timmes inaktivitet utan att avbrytas.
Alternativt kan du uppnå samma resultat genom att endast ange parametern ClientAliveInterval.
ClientAliveInterval 3600
När du är klar laddar du om OpenSSH-demonen för att ändringarna ska träda i kraft.
$ sudo systemctl reload sshd