Evitar desconexión SSH

A muchos de vosotros os pasará que debeis conectar a un servidor mediante SSH y realizar varias tareas, pero entre estas puede pasar un cierto tiempo. Por defecto, la conexión SSH se desconecta automáticamente cuando el servidor lleva un rato sin recibir ninguna orden, por lo que se debe volver a reconectar al servidor (e incluso en algunos casos, bloquea la terminal y hay que cerrarla y volver a abrirla).

Esta mañana he encontrado la solución en un blog venezonalo de Fedora.

La mejor manera de mantener la sesión abierta, es hacer que el servidor SSH envíe peticiones cada cierto tiempo para comprobar el estado de la conexión. Esto hace que al haber actividad, la conexión no se cierre. Para hacerlo deberemos aplicar la siguiente configuración:

Cliente
Abriremos el fichero /etc/ssh/ssh_config con nuestro editor favorito y añadiremos las siguientes 2 líneas:

ServerAliveInterval 30
AliveCountMax 4
Servidor
En nuestro servidor SSH abriremos el mismo fichero /etc/ssh/ssh_config para añadir estas otras 2 líneas:
ClientAliveInterval 30
ClientAliveCountMax 4

Esta configuración hace que cada una de las máquinas haga consultas a la otra cada 30 segundos y en caso de recibir 4 errores NOK (errores de respuesta), la conexión se cerrará. De lo contrario se mantendrá abierta.

Disfrutad de una conexión SSH sin cortes.

4 comentarios:

Mio dijo...

Probando a ver como funciona. lo malo es que luego de configurarlo sali de la terminal y me volvio a bloquear.. plaf!

jacanales dijo...

Comprueba que has puesto los parámetros correctos en cada máquina.

Si los parámetros están bien y sigue sin funcionarte, prueba a reiniciar el daemon ssh tanto en el cliente como en el servidor con sudo /etc/init.d/ssh restart.

Espero que te sea de ayuda, un saludo.

Mio dijo...

si sabes lo que pasa es que cada ves que intento conectarme al ssh usando usuario@IPhost no me deja y si le hago un nmap -p 22 IPhost a veces me dice que el puerto 22 esta abierto y otras me dice que el puerto esta cerrado... por ejemplo ahora cerrado. antes abierto.. me jode eso... por que pasa acaso se bloquea automatico si existe alguna conexion fallida?

jacanales dijo...

Eso debe de ser algún problema de conexión con el servidor, no tiene nada que ver con lo que explico en este post.

Para intentar arreglar esto, deberías hablar con tu proveedor de hosting.

Es muy posible, que si usas un hosting compartido, tenga un límite de conexiones ssh.

Publicar un comentario