Qual è il Timeout Predefinito su SSH?
Secure Shell è un metodo per gestire un computer o server remotamente disponibile su Linux, OS X e Windows. A certi intervalli le sessioni SSH vanno in timeout, perché una sessione SSH aperta e incustodita presenta un rischio di sicurezza. Se sei inattivo per un certo tempo, la connessione si chiude e sarai costretto a fare login di nuovo. Questo timeout è definito dalle impostazioni TCP del sistema, ma può essere sovrascritto nelle impostazioni del server o del client. Se la tua connessione SSH va in timeout troppo spesso, puoi sempre modificare la configurazione SSH per darti più o meno tempo di inattività.
Timeout TCP
Il timeout predefinito del server è il timeout TCP del sistema. Questo perché i server SSH sono configurati automaticamente per usare TCPKeepalive, che invia una sonda a un tempo prestabilito quando il sistema è inattivo per verificare che la connessione esista ancora. Questo default varia a seconda del sistema. Alcuni sistemi usano un default basso come cinque secondi, altri fino a due ore; la media è tipicamente intorno a tre-cinque minuti. La tua connessione SSH, se non modificata per cambiare il timeout su server o client, userà questo timeout. Le impostazioni nel server o client sovrascriveranno questo timeout.
Impostazioni Timeout a Livello Server
Modificare il 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 usi un terminale e ti senti a tuo agio con un editor 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 dati al client per controllare l'attività. Dovresti considerare di aggiungere anche "ClientAliveCountMax"; questo dice al server quante volte controllare senza ricevere risposta. Non mettere il cancelletto davanti; le righe con cancelletto sono considerate commenti e non opzioni attive. Ad esempio, per impostare ClientAliveInterval a cinque minuti e ClientAliveCountMax a due, sarebbe così:
ClientAliveInterval 300
ClientAliveCountMax 2
Timeout Basato su Client
Se usi un client come PuTTY, puoi cambiare il timeout cliccando l'opzione "Connection" nella barra laterale e inserendo il tempo preferito in secondi nella casella "Seconds Between Keepalives". Questo dovrebbe basarsi interamente su quanto pensi di stare inattivo tra un'attività e l'altra. Puoi anche cambiare manualmente aprendo i file di impostazione client-side in /etc/ssh/ssh_config — nota la differenza col file server "sshd_config". Aggiungi l'impostazione "ServerAliveInterval" e imposta in secondi ogni quanto vuoi che il client invii pacchetti per mantenere la connessione attiva.
Rischi del Cambio Timeout
Ovviamente cambiare il timeout è una questione di comodità — ti permette di fare multitasking senza dover rinnovare frequentemente il login al server SSH. Tuttavia, significa che devi restare più vigile alla scrivania. Se ti allontani dal computer con una connessione SSH aperta, chiunque può sedersi e accedere al tuo server. Mentre lasciare una connessione SSH aperta per uso domestico è meno preoccupante, l'abitudine di lasciarla aperta può avere conseguenze terribili in mani sbagliate.