You are here: Home » Blog » Finalizacion inesperada de sesiones PuTTY en una conexión SSH a un servidor CentOS.

Finalizacion inesperada de sesiones PuTTY en una conexión SSH a un servidor CentOS.

En las anteriores semanas  había configurado,  tres terminales con windows 7 que se conectaban a través  de la herramienta PUTTY por SSH a un servidor Centos 5. El inconveniente radicaba  que al iniciar las sesiones a través del SSH  estas solamente duraban entre  10 y 30 minutos en conexión activa, después  se desconectaba como si la conexión con el servidor se hubiera perdido . Luego de pasear un rato por internet encontré varios tips[1] que ayudaron a resolver este problema.

En primera instancia  el servicio SSH se deriva de  Secure Shell, el cual ofrece a  los usuarios un mecanismo cifrado y seguro para acceder a los sistemas que  permiten conexiones remotas. Ademas  por sus características de seguridad  este servicio puede reemplazar a la transferencia de FTP. El SSH es la solución perfecta para acceder a sistemas remotos con el periodo de sesiones establecidos y no es vulnerable a ataques maliciosos como eavesdropping para los password u otra información confidencial.

Después de entender  a grandes rasgos que es el servicio SSH procedemos a instalarlo en el servidor Centos ingresando en una terminal:

yum install openssh openssh-server openssh-clients

Para iniciar el servicio simplemente se debe digitar en consola:

/etc/init.d/ssh start

En la instalación de PUTTY en Windows 7 solo se debe  descargar el ejecutable del siguiente link y guardarlo en el lugar de preferencia para poder acceder a el fácilmente. Después de ejecutarlo es necesario para solucionar del problema presentado modificar ciertas características de ejecución. En el menú que se desprende en el lado izquierdo damos click en Terminal -> Keyboard y elegimos ‘The Function Keys and Keypad’  Linux.

 

A continuación damos  en Window-> Translation la opción de la lista desplegable UTF-8.

Ahora viene  la parte mas importante, para que no se  este desconectando el acceso remoto al servidor cada ves que  no lo utilizamos , debemos  dirigirnos a Connection y en la opción ‘Seconds between Keepalives (0 to turn off)’ dar un valor en segundos, por ejemplo ‘300’.

La razón para utilizar esta  opción es  debido a que algunos routers y firewalls hace un seguimiento a las conecciones que están establecidas y las que no envían  ni reciben “señales de vida” las da por muertas y termina la conexión. Esto puede provocar que las sesiones de PuTTY sean cerradas inesperadamente por seguridad del servidor si no hay trafico por un tiempo. La opción keepalive (‘segundos entre conexiones abiertas “) le permite configurar a PuTTY el envió de datos a través de la sesión, a intervalos regulares, de manera que no interrumpa la sesión del terminal actual.  Al colocar el valor 300 en la casilla, quiere decir que cada 5 minutos  va a existir trafico entre el servidor y el cliente[2].

Si después de  haber  configurado de esta manera el PuTTY se siguen presentando el inconveniente  de un cierre  de sesión inesperado, es conveniente  entrar a modificar  el archivo de configuracion del demonio SSHD sshd_config. Para editarlo podemos utilizar el siguiente  comando:

nano /etc/ssh/sshd_config

Nos ubicamos en ClientAliveCountMax  que es donde se establece el numero de mensajes de vida del cliente. Si se alcanza este umbral, SSHD desconectara el cliente, terminando la sesión. El mecanismo de cliente con vida es valiosa cuando el cliente o servidor dependen de saber cuándo una conexión se ha convertido en inactivo. 

Luego encontraremos ClientAliveInterval el cual establece un intervalo de tiempo de espera en segundos, después de que, si han habido datos recibidos desde el cliente, SSHD enviara un mensaje a través del canal cifrado para solicitar una respuesta del cliente. El valor predeterminado es 0, lo que indica que estos mensajes no se envían al cliente. Esta opción se aplica a la versión 2 del protocolo solamente. 

Básicamente, estos  fueron los pasos que después de algunos ensayos, me llevaron a la solución de la culminación inesperada de la sesiones a través de PuTTY.

 

[1] http://www.faqs.org/docs/securing/chap15sec122.html

[2] http://the.earth.li/~sgtatham/putty/0.62/htmldoc/

Ingeniero de Sistemas de la Universidad Catolica de Colombia. Amante del Software libre y la Administracion de Bases de Datos. Apasionado por el futbol y por su profesión. Síguelo en twitter @FreeHyoga

http://hotfixed.net

2 Comments

  1. Dani, me parece interesante lo que mencionas para dejar en comunicación permanente entre el servidor y la maquina cliente, pero me surje un par de dudas cuando mencionas…

    Si después de haber configurado de esta manera el PuTTY se siguen presentando el inconveniente de un cierre de sesión inesperado, es conveniente entrar a modificar el archivo de configuracion del demonio SSHD sshd_config.

    Cuando comentas que no situemos en las opciones de ClientAliveCountMax y ClientAliveInterval ¿cuales son los valores que tu recomiendas para estos 2 elementos?

    Muchas gracias por todo.

    • Hola Abby Mora, efectivamente, si despues de realizar la respectiva configuración del PuTTY se siguen presentando los mismos inconvenientes se debe entrar a modificar el archivo de configuracion del demonio SSHD sshd_config. Es importante recordar que la opción ClientAliveInterval estable el tiempo en segundos despues del cual, si no se recibe ninguan señal por parte del cliente, SSHD enviara un mensaje solicitando respuesta al cliente. Por defecto es 0, indicando que no se envia ningun mensaje. Personalmente cuando tengo esta clase de problemas dejo el valor 300. Por otro lado, la opción ClientAliveCountMax indica las veces que el servidor sshd enviara mensajes keepalive cuando el cliente esta inactivo, en caso de que el cliente no envie respuesta entonces el servidor terminara la conexion y por consiguiente la sesion. Si se tiene una sesion intermitente es recomendable dar un numero mayor que el predeterminado. Normalmente yo dejo este valor (3). Tambien debes tener encuenta que esto depende de las conexiones que atienda tu servidor.

Comments are closed.