Esto lo consigues configurar en un archivo llamado "config" que está en la carpeta .ssh de tu usuario. Esa es una carpeta oculta, por lo que igual no la ves con el típico explorador de ventanas y tienes que acceder a ella mediante la línea de comandos.
La carpeta de tu usuario es la que se crea en el sistema operativo, de donde cuelgan otras carpetas como la de descargas, documentos, etc. La ruta del archivo de configuración para conseguir esas conexiones "vivas" por tanto sería:
~/.ssh/config
Existe otra ruta posible para configurar este asunto, directamente en el archivo ssh_config, lo que valdría para todos los usuarios del ordenador. Puede que dependa del sistema operativo la ruta de ese archivo, pero en principio sería:
/etc/ssh/ssh_config
Alguno de esos dos archivos lo tienes que editar y al principio le puedes colocar estas variables de configuración:
ServerAliveInterval 120
ServerAliveCountMax 3
Esto hace que el cliente de ssh envíe una señal al servidor, vacía pero una señal, que se repite cada 120 segundos. De ese modo la conexión no te hace un timeout y no se cierra. Eso en lo que respecta al ServerAliveInterval. Luego la configuración ServerAliveCountMax es el número de reintentos que intentará mantenerla viva, pero si falla porque el servidor no le responda, pasados ese número de intentos, el cliente simplemente dará por cerrada la conexión.
Vamos a suponer que intenta hacer un o de los intentos del ServerAliveCountMax. Si el servidor no responde, entonces espera 120 segundos para hacer el segundo intento. Si no responde, espera 120 segundos más y si no responde a la tercera, es que da por perdida la conexión.
No tienen por qué ser esos valores específicos, claro que tú lo puedes configurar a tu gusto o necesidades. Igual un servidor en concreto 120 segundos es mucho tiempo de espera entre señales y te cuelga la conexión antes, en cuyo caso podrías probar a bajar el ServerAliveInterval por ejemplo para que mande señales cada 60 segundos para evitar el posible timeout.