Timeout por inactividad SSH

Actualizado el domingo, 19 junio, 2016

La variable de entorno TMOUT nos permite definir el tiempo que queremos permitir a un usuario permanecer dentro de la shell o sesión SSH sin hacer nada (estado idle o inactivo). Por defecto no hay límite de tiempo por lo que un usuario podrá permanecer de forma indefinida conectado al sistema independientemente de que la sesión se esté utilizando o no.

Para configurar esta variable, simplemente la añadimos dentro de nuestro perfil de variables/configuraciones de bash /.bashrc. Conviene configurarla como read only para evitar que el propio usuario pueda modificarla:

# Establecemos en 2 minutos (120 segundos) el Timeout para la sesión bash/ssh
TMOUT=120
readonly TMOUT

Refrescamos la shell o entramos y salimos para que sea efectivo:

$ bash

También podemos establecerla a tiempo real mediante export:

$ export TMOUT=120

Si dejamos la shell abierta durante 2 minutos sin realizar ninguna tarea automáticamente nos desconectará de la sesión:

$ timed out waiting for input: auto-logout

Otra forma sería a nivel del servicio openssh que sería mucho mejor cuando hay varios usuarios que se conectan y se establecería el timeout de inactividad para cualquier conexión que se establezca con el servidor. Para hacer esto editamos el fichero sshd_config en /etc/ssh y añadimos lo siguiente:

# nano /etc/ssh/sshd_config

Agregamos las siguientes:

ClientAliveInterval 300
ClientAliveCountMax 0

En el ejemplo 300 seg que son 5 min. Con esto logramos el mismo efecto anterior pero para cualquier conexión que de cualquier usuario que se establezca con el servidor.

 

Agregar comentario