Quando estou preocupado em perder a conexão, eu uso "screen" para criar um terminal virtual. Dessa forma, se o ssh ficar inativo, meus programas continuarão sendo executados e eu posso me reconectar.
$ screen sudo su - userX
Certifique-se de obter a identidade da sua sessão, para que você possa se reconectar mais tarde:
$ screen -list
Deve fornecer algo como pid.tty.hostname
Agora, se a sua sessão ssh cair, basta reiniciá-la e reconectar ao seu terminal virtual:
$ screen -r <pid>.<tty>.<hostname>
Confira "man screen" para mais detalhes.
Também - eu já ouvi coisas boas sobre o "mosh" (MIT Mobile Shell), mas eu não toquei com isso ainda. link