Secure Shell è un metodo per gestire un computer o un server in remoto disponibile per Linux, OS X e Windows. A determinati intervalli la sessione SSH scade, perché una sessione SSH aperta e non presidiata presenta un rischio per la sicurezza. Se rimani inattivo per un certo periodo di tempo, la connessione si interrompe e sarai costretto ad accedere nuovamente. Questo timeout è definito dalle impostazioni TCP del sistema, ma può essere sovrascritto nelle impostazioni del server o nelle impostazioni del client. Se trovi che la tua connessione SSH scade troppo spesso, puoi sempre modificare la tua configurazione SSH per darti un tempo più o meno inattivo.
Timeout TCP
Il timeout del tuo server per impostazione predefinita è il timeout TCP del tuo sistema. Questo perché i server SSH sono configurati automaticamente per utilizzare TCPKeepalive, che invia una sonda in un momento prestabilito quando il sistema è inattivo per verificare che la connessione sia ancora presente. Questa impostazione predefinita varia a seconda del sistema. Alcuni sistemi utilizzano un valore predefinito di soli cinque secondi e altri arrivano fino a due ore; la media è in genere di circa tre-cinque minuti. La tua connessione SSH, se non è stata modificata per cambiare il timeout sul server o sul client, utilizzerà questo timeout. Le impostazioni nel server o nel client sovrascriveranno questo timeout.
Video del giorno
Impostazioni di timeout a livello di server
La modifica del timeout dal file sshd_config cambierà le opzioni di timeout per ogni client che accede al server. Gli amministratori di sistema possono accedere a questo file in /etc/ssh/sshd_config. Se stai usando un terminale e hai dimestichezza con un editor di terminale, puoi modificarlo interamente nel terminale inserendo "sudo nano /etc/ssh/sshd_config". Aggiungi l'opzione "ClientAliveInterval" che dice al server di inviare un pacchetto di dati al client per verificare l'attività. Dovresti considerare di aggiungere anche "ClientAliveCountMax"; questo dice al server quante volte dovrebbe controllare senza ottenere una risposta. Non mettere un cancelletto davanti a questi; le righe con il cancelletto davanti sono considerate commenti e non sono opzioni attive nel server. Ad esempio, se desideri impostare ClientAliveInterval su cinque minuti e ClientAliveCountMax su due, potrebbe essere simile a questo: ClientAliveInterval 300ClientAliveCountMax 2
Timeout basato sul client
Se stai utilizzando un client come Putty, puoi modificare il timeout facendo clic sull'opzione "Connessione" su nella barra laterale e inserisci il tuo tempo preferito nella casella di testo accanto a "Secondi tra Keepalives" in secondi. Questo dovrebbe essere basato interamente su quanto tempo pensi di rimanere inattivo tra un'attività e l'altra. Puoi anche cambiarlo manualmente aprendo i tuoi file di impostazione lato client in /etc/ssh/ssh_config – nota la differenza tra il file del server "sshd_config". Aggiungi l'impostazione "ServerAliveInterval" e imposta in secondi la frequenza con cui desideri che il client invii i pacchetti per mantenere attiva la connessione.
Rischi di modificare il timeout
Ovviamente cambiare il timeout è una questione di comodità: ti consente di svolgere più attività senza dover rinnovare frequentemente il tuo accesso al tuo server SSH. Tuttavia, ciò significa che devi rimanere più vigile sul tuo desktop. Se ti allontani dal tuo computer con una connessione SSH aperta, chiunque può sedersi e accedere al tuo server. Anche se lasciare una connessione SSH aperta per uso domestico è meno preoccupante rispetto a quando lo fai per te, avere l'abitudine di lasciare aperta la connessione può avere conseguenze piuttosto orribili nel torto mani.