Che cos'è il timeout predefinito su SSH?
Secure Shell è un metodo di gestione remota di un computer o server disponibile per Linux, OS X e Windows. Un determinato intervallo di timeout della sessione SSH, 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 tuo sistema, ma può essere sovrascritto nelle impostazioni del server o nelle impostazioni del client. Se scopri 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 è predefinito sul timeout TCP del tuo sistema. Questo perché i server SSH sono configurati automaticamente per utilizzare TCPKeepalive, che invia un probe 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 a partire da cinque secondi e altri fino a due ore; la media è in genere di circa tre o cinque minuti. La tua connessione SSH, se non è stata modificata per modificare il timeout sul server o sul client, utilizzerà questo timeout. Le impostazioni nel server o nel client sovrascriveranno questo timeout.
Impostazioni di timeout a livello di server
La modifica del timeout dal file sshd_config modificherà 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
If you're using a client like Putty, you can change the timeout by clicking the "Connection" option on the sidebar and fill in your preferred time in the text box beside "Seconds Between Keepalives" in seconds. This should be based on entirely how long you think you'll be inactive between activity. You can also change this manually by opening your client-side setting files at /etc/ssh/ssh_config – note the difference between the server file "sshd_config". Add the setting "ServerAliveInterval" and set in seconds how often you want to the client to send packets to keep the connection active.
Risks of Changing Timeout
Obviously changing timeout is a matter of convenience – it allows you to multitask without having to frequently renew your login to your SSH server. However, this means that you need to remain more vigilant at your desktop. If you walk away from your computer with an SSH connection open, anyone can sit down and access your server. While leaving an SSH connection open for home use is less concerning than when you're doing so for you, being in the habit of leaving your connection open can have quite horrible consequences in the wrong hands.