autossh
mantém as sessões do ssh ativas. Com os parâmetros certos, você também pode iniciá-lo quando é impossível conectar-se e tentará até que seja bem-sucedido. Isso funciona bem, mas se você quiser que a parte de conexão re funcione bem com sessões interativas, será necessário combiná-la com screen
ou equivalente.
Eu recomendo isso:
AUTOSSH_POLL=5 AUTOSSH_GATETIME=0 autossh -M 0 -o ServerAliveInterval=5 -o ServerAliveCountMax=1 user@host
Mas veja a sua página de manual para detalhes. Com os parâmetros acima, autossh
tentará iniciar ssh a cada AUTOSSH_POLL
segundos, AUTOSSH_GATETIME=0
faz com que tente novamente se a primeira tentativa falhar (então definitivamente o que você quer), -M 0
desabilita verificação de conexão por autossh, todas as opções posteriores são passados para o ssh. As duas opções -o
fazem o ssh sair se as conexões caírem por mais de 5s.