Ho trovato questa domanda, ma mi dispiace non capisco bene le impostazioni sulle due variabili ServerAliveInterval
e ClientAliveInterval
menzionato nella risposta accettata. Se il mio server locale è scaduto, devo impostare questo valore su zero? Allora non scadrà mai? Dovrei invece impostarlo su 300 secondi o qualcosa del genere?
La mia domanda è semplicemente che alcune delle mie connessioni si interrompono quando sospendo e quindi riattiva il mio laptop con la risposta Write failed: Broken pipe
e alcuni no. Come posso configurare correttamente un sshd locale in modo che non si rompano con una pipe rotta?
Risposta accettata:
ServerAliveInterval:numero di secondi che il client attenderà prima di inviare un pacchetto nullo al server (per mantenere attiva la connessione).
ClientAliveInterval:numero di secondi che il server attenderà prima di inviare un pacchetto nullo al client (per mantenere attiva la connessione).
L'impostazione di un valore di 0 (impostazione predefinita) disabiliterà queste funzionalità in modo che la connessione potrebbe interrompersi se rimane inattiva per troppo tempo.
ServerAliveInterval sembra essere la strategia più comune per mantenere attiva una connessione. Per prevenire il problema del tubo rotto, ecco la configurazione ssh che uso nel mio file .ssh/config:
Host myhostshortcut
HostName myhost.com
User barthelemy
ServerAliveInterval 60
ServerAliveCountMax 10
L'impostazione di cui sopra funzionerà nel modo seguente,
- Il client attenderà inattivo per 60 secondi (tempo ServerAliveInterval) e invierà un "pacchetto nullo no-op" al server e si aspetterà una risposta. Se non arriva alcuna risposta, continuerà a provare il processo sopra fino a 10 volte (ServerAliveCountMax) (600 secondi). Se il server continua a non rispondere, il client disconnette la connessione ssh.
Anche ClientAliveCountMax sul lato server potrebbe essere d'aiuto. Questo è il limite per quanto tempo un client può rimanere inattivo prima di essere disconnesso. Il valore predefinito è 3, come in tre ClientAliveInterval.