Ha sok időt töltesz a parancssorban, talán már találkoztál azzal a bosszantó problémával, hogy a munkamenet egy viszonylag rövid inaktív időszak után leáll. Bár ez biztonsági szempontból kívánatos, problémákat okozhat, amikor egy hosszú ideig futó műveletet próbálsz végrehajtani.
Általában az történik, hogy a szerverrel való kapcsolatod visszaáll, ha egy ideig nem voltál aktív, ami tipikusan ezt a hibát produkálja: Connection reset by peer. Ennek megkerülése érdekében be kell állítania a Keep Alive opciót a kiszolgálón.
Ebben az útmutatóban megtudhatja, hogyan akadályozhatja meg az SSH-kapcsolat időkiesését, és hogyan tarthatja életben az SSH-munkamenetet némi inaktivitás után is Linuxon.
SSH kapcsolat időkorlátjának növelése
A kiszolgálón lépjen át a /etc/ssh/sshd_config
konfigurációs fájlba.
$ sudo vi /etc/ssh/sshd_config
Görgesse végig és keresse meg a következő paramétereket:
#ClientAliveInterval #ClientAliveCountMax
Ahol,
-
ClientAliveCountMax
: Beállítja a kliens életben lévő üzenetek számát, amelyeket anélkül lehet elküldeni, hogy az sshd üzenetet kapna vissza a klienstől. Ha ezt a küszöbértéket eléri a kliens élő üzenetek küldése közben, az sshd megszakítja a kliens kapcsolatát, és ezzel a munkamenetet befejezi.
ClientAliveInterval
: Beállít egy időkorlát intervallumot másodpercben, amely után, ha nem érkezik adat az ügyféltől, az sshd üzenetet küld a titkosított csatornán keresztül, hogy választ kérjen az ügyféltől. Az alapértelmezett érték 0, ami azt jelzi, hogy ezek az üzenetek nem kerülnek elküldésre az ügyfélnek. Ez az opció csak a 2-es verziójú protokollra vonatkozik.
A timeout értékét a fenti paraméterek szorzata adja i.pl.
Timeout value = ClientAliveInterval * ClientAliveCountMax
Tegyük fel például, hogy a paramétereket az alábbi módon határozta meg:
ClientAliveInterval 1200ClientAliveCountMax 3
A Timeout értéke 1200 másodperc * 3 = 3600 másodperc lesz. Ez 1 órának felel meg, ami azt jelenti, hogy az ssh munkamenet 1 óra üresjárati időn keresztül életben marad megszakítás nélkül.
Alternatívaként ugyanezt az eredményt elérheti a ClientAliveInterval paraméter kizárólagos megadásával is.
ClientAliveInterval 3600
Amint végzett, töltse újra az OpenSSH démont, hogy a változások hatályba lépjenek.
$ sudo systemctl reload sshd