Hace poco me he cambiado de operadora y, desde entonces, estaba frito con los timeouts que sufría en las sesiones remotas con SSH en cuanto dejaba la terminal inactiva unos pocos minutos. Como me sucedía en todos los servidores a los que me conecto, en los cuales nunca antes me pasaba (y que yo mismo administro), lógicamente pensé que el problema estaba del lado del cliente, o de la red, quizá con algún router o firewall de Auna. Al parecer, los routers, para mantener limpias sus tablas de enrutamiento, se deshacen a las bravas de las sesiones ociosas al cabo de un tiempo. Hasta aquí, normal: algunas te mantienen la conexión inactiva unas horas o incluso un día, pero resulta que el NAT de Auna te corta la sesión ¡¡a los 5 minutos!! Busqué un poco (tampoco mucho) en google, en foros y listas, a ver si otros usuarios de Auna habían tenido el mismo problema y cómo lo habían resuelto, pero no encontré nada, lo cual realmente me sorprende, a alguien más tiene que estar pasándole. Así que, sin demasiado tiempo para mirarlo más a fondo, me he ido arreglando hasta ahora a base de
screen (aunque esto no impedía la incomodidad de tener que hacer login de nuevo en cuanto me descuidaba para reenchufarme a screen).
Encontré una solución del lado del servidor y en plan chapucilla (lo del ping -i ya lo había hecho), pero no me sirvió. Además, quería que la solución fuese del lado del cliente, para no depender de poder cambiar la configuración de los servidores, pues lógicamente no siempre tengo permisos para hacer tal cosa.
Por fin, revisando con cuidado las opciones del fichero de configuración del cliente SSH, di con la solución, que es muy sencilla y elegante: consiste en activar el parámetro ServerAliveInterval en el propio cliente, que está a 0 por defecto (por tanto no envía nada). Se configura poniendo un valor en segundos, así que a mí me ha bastado con poner en ~/.ssh/config las líneas:
host *
ServerAliveInterval 240
De este modo, el cliente envía cada 4 minutos (a mí me basta, ya que se me corta a los 5 minutos de inactividad) al servidor una petición keepalive, para mantener viva la conexión, todo de forma transparente, desde la capa de aplicación, sin ningún coste apreciable para el sistema ni para la red.
Espero que a alguien le sirva. :-)
huh.. gracias
(Puntos:1)( Última bitácora: Viernes, 03 Febrero de 2012, 15:18h )
A mí no me ocurre
(Puntos:1)( http://www.pasky.org/ | Última bitácora: Miércoles, 22 Junio de 2005, 18:00h )
Yo tengo Auna (en Sevilla era Supercable) en el servidor de mi casa y no tengo ese problema. A veces en el trabajo se me olvida desconectar la sesión ssh y cuando vuelvo al día siguiente (o incluso el lunes tras el fin de semana) y sigue ahí, activa.
A la inversa me ocurre igual, es decir, conectándome desde mi casa (Auna) a los servidores del trabajo (Telefónica) también me funciona correctamente, sin desconexiones.
Como cliente uso PuTTY. Y las opciones que comentáis, como keepalive en PuTTY o ServerAliveInterval en (Open)SSH, las tengo desactivadas.
El único detalle, que no sé si tendrá que ver, es que ninguna de estas conexiones van por el puerto 22, sino que usos otros puertos no estándares.
Pasky
Www.Pasky.Org [pasky.org]