Anche se questa non è una risposta diretta alla tua domanda, è altamente correlata al problema che hai. Invece di cercare di mantenere viva la connessione (tutte le connessioni alla fine muoiono) puoi usare multiplexor di terminale, come screen e tmux che mantengono viva la sessione in background anche se il tuo terminale si disconnette.
Essenzialmente quando ti connetti al server SSH esegui immediatamente screen che creerà e collegherà una nuova sessione:
$ screen
Poi vai avanti e fai il tuo lavoro con la shell come faresti normalmente. Ora, se la connessione cade, quando potete tornare online e riconnettervi al server tramite SSH, otterrete un elenco delle sessioni correnti con:
$ screen -ls
Per riconnettersi a una sessione:
$ screen -r <session>
dove <session> è il PID o il nome della sessione. Sarai ricollegato alla tua sessione e potrai continuare da dove hai lasciato!
Puoi anche staccare la sessione e riconnetterti da casa per riprendere dal punto esatto in cui hai lasciato. Per staccare la sessione si usa C-a seguito da C-d (cioè Control + A e poi Control + D).
C'è anche un semplice tutorial online .
Usare screen e tmux sui server remoti è considerato una migliore pratica ed è altamente raccomandato. Alcune persone arrivano al punto di avere screen come shell di default per il login, così quando si connettono iniziano immediatamente una nuova sessione screen.