Jos vietät paljon aikaa komentorivillä, olet ehkä törmännyt ärsyttävään ongelmaan, jossa istuntosi katkeaa suhteellisen lyhyen käyttämättömyysajan jälkeen. Vaikka tämä on toivottavaa tietoturvan kannalta, se voi aiheuttaa ongelmia, kun yrität suorittaa pitkään käynnissä ollutta toimintoa.
Vakiintuneesti käy niin, että yhteytesi palvelimeen nollautuu, kun olet ollut jonkin aikaa käyttämättömänä, mikä tyypillisesti tuottaa virheilmoituksen: Connection reset by peer. Tämän voi kiertää asettamalla palvelimelle Keep Alive -asetuksen.
Tässä oppaassa opit, miten voit estää SSH-yhteyden aikakatkaisun ja pitää SSH-istunnon elossa myös jonkinlaisen käyttämättömyyden jälkeen Linuxissa.
SSH-yhteyden aikakatkaisun lisääminen
Palvelimella siirry /etc/ssh/sshd_config
-konfigurointitiedostoon.
$ sudo vi /etc/ssh/sshd_config
Rullaa ja etsi seuraavat parametrit:
#ClientAliveInterval #ClientAliveCountMax
Missä,
-
ClientAliveInterval
: Asettaa aikakatkaisun aikaväliä sekunneissa, jonka jälkeen, jos asiakkaalta ei ole vastaanotettu dataa, sshd lähettää viestin salatun kanavan kautta pyytääkseen vastausta asiakkaalta. Oletusarvo on 0, mikä tarkoittaa, että näitä viestejä ei lähetetä asiakkaalle. Tämä asetus koskee vain protokollaversiota 2. -
ClientAliveCountMax
: Asettaa niiden client alive -viestien lukumäärän, jotka voidaan lähettää ilman, että sshd saa asiakkaalta mitään viestejä takaisin. Jos tämä kynnysarvo saavutetaan, kun client alive -viestejä lähetetään, sshd katkaisee asiakkaan yhteyden ja lopettaa istunnon.
Aikakatkaisuarvo annetaan edellä mainittujen parametrien tulona i.Esim.
Timeout value = ClientAliveInterval * ClientAliveCountMax
Esitetään esimerkiksi, että olet määrittänyt parametrit seuraavasti:
ClientAliveInterval 1200ClientAliveCountMax 3
Timeout-arvo on 1200 sekuntia * 3 = 3600 sekuntia. Tämä vastaa 1 tuntia, mikä tarkoittaa, että ssh-istunto pysyy elossa tyhjäkäynnillä 1 tunnin ajan keskeytymättä.
Vaihtoehtoisesti voit saavuttaa saman tuloksen määrittelemällä pelkästään ClientAliveInterval-parametrin.
ClientAliveInterval 3600
Kun tämä on tehty, lataa OpenSSH-daemon uudelleen, jotta muutokset tulevat voimaan.
$ sudo systemctl reload sshd