¿Qué es el tiempo de espera predeterminado en SSH?

Secure Shell es un método para administrar una computadora o un servidor de forma remota que está disponible para Linux, OS X y Windows. Ciertos intervalos de tiempo de espera de la sesión SSH, porque una sesión SSH abierta y desatendida presenta un riesgo de seguridad. Si está inactivo durante un cierto período de tiempo, la conexión se cierra y se verá obligado a iniciar sesión nuevamente. Este tiempo de espera está definido por la configuración de TCP de su sistema, pero se puede anular en la configuración del servidor o en la configuración del cliente. Si descubre que su conexión SSH se agota con demasiada frecuencia, siempre puede editar su configuración de SSH para tener más o menos tiempo de inactividad.

Tiempo de espera de TCP

El tiempo de espera de su servidor por defecto es el tiempo de espera de TCP de su sistema. Esto se debe a que los servidores SSH se configuran automáticamente para usar TCPKeepalive, que envía un sondeo en un momento preestablecido cuando el sistema está inactivo para verificar que la conexión aún está allí. Este valor predeterminado varía según su sistema. Algunos sistemas usan un valor predeterminado de tan solo cinco segundos, y algunos van tan alto como dos horas; el promedio es típicamente alrededor de tres a cinco minutos. Su conexión SSH, si no se ha modificado para cambiar el tiempo de espera en el servidor o en el extremo del cliente, utilizará este tiempo de espera. La configuración en el servidor o cliente anulará este tiempo de espera.

Configuración de tiempo de espera en todo el servidor

La edición del tiempo de espera del archivo sshd_config cambiará las opciones de tiempo de espera para cada cliente que inicie sesión en el servidor. Los administradores del sistema pueden acceder a este archivo en /etc/ssh/sshd_config. Si está utilizando una terminal y se siente cómodo con un editor de terminal, puede editarlo completamente en la terminal ingresando "sudo nano /etc/ssh/sshd_config". Agregue la opción "ClientAliveInterval" que le dice al servidor que envíe un paquete de datos al cliente para verificar la actividad. Debería considerar agregar "ClientAliveCountMax" también; esto le dice al servidor cuántas veces debe verificar sin obtener una respuesta. No ponga un signo de libra delante de estos; las líneas con signos de almohadilla delante de ellas se consideran comentarios y no son opciones activas en el servidor. Por ejemplo, si quisiera establecer su ClientAliveInterval en cinco minutos y su ClientAliveCountMax en dos, podría verse así:ClientAliveInterval 300ClientAliveCountMax 2

Tiempo de espera basado en el cliente

If you're using a client like Putty, you can change the timeout by clicking the "Connection" option on the sidebar and fill in your preferred time in the text box beside "Seconds Between Keepalives" in seconds. This should be based on entirely how long you think you'll be inactive between activity. You can also change this manually by opening your client-side setting files at /etc/ssh/ssh_config – note the difference between the server file "sshd_config". Add the setting "ServerAliveInterval" and set in seconds how often you want to the client to send packets to keep the connection active.

Risks of Changing Timeout

Obviously changing timeout is a matter of convenience – it allows you to multitask without having to frequently renew your login to your SSH server. However, this means that you need to remain more vigilant at your desktop. If you walk away from your computer with an SSH connection open, anyone can sit down and access your server. While leaving an SSH connection open for home use is less concerning than when you're doing so for you, being in the habit of leaving your connection open can have quite horrible consequences in the wrong hands.