Mantenere attive le connessioni SSH dal terminale

Mantenere attive le connessioni SSH dal terminale

Vi è mai capitato di dover lasciare in background un terminale (es. bash) con un processo ssh attivo e dopo qualche minuto trovare la connessione remota terminata?

Solitamente la causa è dovuta alla configurazione standard dei server SSH che dopo un certo periodo di attività interrompono la connessione, compresa la sessione remota da un client SSH.

In alcuni casi questa impostazione può risultare scomoda, quindi si può risolvere in due modi:

  1. Modificando la configurazione del server (sconsigliato)
  2. Modificando la configurazione del client (spiegato in questo breve articolo)

Nel caso si utilizzi bash la configurazione è piuttosto semplice: basta modificare il file ~/.ssh/config aggiungendo le seguenti righe:

Host *
ServerAliveInterval 60

La prima impostazione, Host *, serve per indicare verso quale host applicare le configurazioni seguenti, in questo caso la seconda riga, ServerAliveInterval specifica l'intervallo di attesa per inviare un pacchetto vuoto verso il server, necessario per tenere attiva la connessione.