Per chiarire:sto cercando una soluzione che avvii una volta dopo aver effettuato l'accesso, quindi voglio utilizzare quel terminale, andarmene, tornare due ore dopo e continuare a lavorare, senza digitare nulla prima di andarmene.
Il problema è che c'è qualcosa (di solito un firewall o un bilanciamento del carico), che sta eliminando le sessioni inattive. Se configuri i keepalive della sessione, i keepalive impediranno ai dispositivi di rete di considerare la sessione come inattiva.
Correzione Linux/Unix/Cygwin OpenSSH :
La soluzione più semplice è abilitare i keepalive del client ssh; questo esempio invierà un keepalive ssh ogni 60 secondi:
ssh -o "ServerAliveInterval 60" <SERVER_ADDRESS>
Se vuoi abilitarlo su tutte le tue sessioni, inseriscilo nel tuo /etc/ssh/ssh_config
o ~/.ssh/config
:
ServerAliveInterval 60
Per ulteriori informazioni, vedere il ssh_config
manpage
Mastice Fix :
Salvalo nelle "Impostazioni predefinite" di PuTTY...
- Fai clic su Connessione
- Digita 60 in "Secondi tra keepalive"
Oltre alla risposta di Mike Pennigton, vorrei metterti al corrente di ServerAliveCountMax
anche.
- Il
ServerAliveInterval
invierà un keepalive ogni x secondi (il valore predefinito è 0 , che disabilita questa funzione se non è impostata su qualcos'altro). - Questo sarà fatto
ServerAliveCountMax
volte se non si riceve risposta. Il valore predefinito diServerAliveCountMax
è 3 (vedi manpage ssh_config).
Esempio:se imposti ServerAliveInterval
a 60 e lasciare ServerAliveCountMax
così com'è, questo significa che il keepalive aspetterà solo 3 * 60 = 180 seconds =
3 minuti prima di uscire.
Per aumentare questo ad es. 2 ore di tentativi per mantenere viva la connessione, puoi fare:
Per comando:
Pertanto dovresti considerare di impostare
ssh -o "ServerAliveInterval 60" -o "ServerAliveCountMax 120" <SERVER_ADDRESS>
Persistente:
Per renderlo persistente scrivilo a /etc/ssh/ssh_config
(si applicherà a tutto il sistema) o ~/.ssh/config
(si applicherà solo all'utente):
ServerAliveInterval 60
ServerAliveCountMax 120
Nota
Come ha correttamente sottolineato dislick, questo potrebbe non essere quello che desideri, a seconda della tua situazione:
- Se desideri terminare rapidamente la sessione non appena il server non risponde più, dovresti scegliere un valore basso per
ServerAliveCountMax
. - Se sei più interessato a mantenere una connessione già stabilita (ad es. vai in treno e hai una latenza elevata), dovresti scegliere un valore più alto per
ServerAliveCountMax
per consentiressh
per continuare a tentare di ristabilire la connessione.
Vedi anche:
- unix.stackexchange.com - Qual è il timeout di inattività predefinito per OpenSSH?
Sto usando Mobaxterm e ho anche riscontrato questo problema. Mobaxterm viene fornito anche con un'opzione per mantenere attivo il client quando il client è inattivo. Vai a Settings -> Configuration -> SSH
. C'è una sezione intitolata SSH settings
, seleziona l'opzione SSH keepalive
. Quindi il problema dovrebbe scomparire.