A veces sucede que estamos trabajando en un servidor remoto a través de SSH y, luego de un tiempo de inactividad, la sesión se desconecta. En este artículo explico cómo mantener las sesiones SSH abiertas indefinidamente.

Es posible configurar el cliente SSH para que envíe periódica y automáticamente un código no-op para que el servidor no desconecte la sesión luego de un tiempo de inactividad. Esta característica se llama "keep-alive" en la mayoría de los clientes.

En el cliente OpenSSH que utilizan todas las distribuciones GNU/Linux, es posible configurar la característica "keep-alive" en diferentes archivos:

  1. Configuración global

    Agregar la siguiente línea en el archivo /etc/ssh/ssh_config:
    ServerAliveInterval 60
    60 es el intervalo de segundos cada cuanto enviar el código no-op para mantener viva la sesión.

  2. Configuración del usuario

    Agregar las siguientes líneas en el archivo ~/.ssh/config (crear si no existe):
    Host *
     ServerAliveInterval 60
    Asterisco significa que se aplica para cualquier host remoto. Asegurarse de dejar un espacio en blanco en el comienzo de la segunda línea.

  3. Configuración por host

    Si se desea habilitar la caracterísitca "keep-alive" para un único host (o un subconjunto de hosts), es posible editar el archivo ~/.ssh/config y utilizar expresiones regulares:
    Host *pepe.com
     ServerAliveInterval 60

Eso es todo, espero que les sirva!


Tal vez pueda interesarte


Compartí este artículo