Breve howto che spiega come modificare il timeout per le connessioni SSH (SSH KeepAlive) ed evitare l’errore Broken pipe

Da quando sono passato alla fibra di TIM, ho notato che il timeout è impostato su un valore molto basso (circa 60 secondi). I metodi per ovviare sono 2:
1- chiamare il nostro provider ADSL/Fibra e farsi aumentare questo parametro a 60 minuti
2- impostare il client SSH affinchè mandi dei piccoli pacchetti di dati ogni n secondi (KeepAlive)

Seguendo questi 2 metodi, è possibile evitare il seguente errore
packet_write_wait: Connection to xxx.xxx.xxx.xxx: Broken pipe
Il metodo ovviamente è valido sia per OSX che Linux

Vediamo quindi come impostare timeout per le connessioni SSH senza ricorrere all’assistenza del nostro provider

Il metodo più rapido è passare il parametro ServerAliveInterval tramite linea di comando, e impostare il numero di secondi. Ad esempio
ssh -o ServerAliveInterval=10 ip.mioserver.com

Se vogliamo rendere permanente questa modifica, basta editare/creare il file ~/.ssh/config, ed inserire le seguenti linee
# Impostazione globale per tutti gli hosts
ServerAliveInterval 10
# Impostare un particolare timeout per specifici hosts
Host server1.com server2.com
ServerAliveInterval 10

Questa modifica sarà attiva solo per il singolo utente. Se invece vogliamo modificare questo parametro per tutti gli utenti del sistema, è necessario aggiungerle non più al file ~/.ssh/config, ma al /etc/ssh_config