El servidor ssh de Linux nunca desconecta la sesión ssh del lado del servidor de forma predeterminada, verifique la configuración del conmutador/enrutador/cortafuegos para evitar el problema sin cambiar la configuración de los servidores/clientes ssh. Si la sesión ssh se desconecta debido a la inactividad y uno quiere detener esto, siga los pasos a continuación, ya sea en el lado del cliente o del servidor, como se describe a continuación:
Configuración del lado del cliente
Para habilitar el mantenimiento activo en todo el sistema (se requiere acceso de raíz), edite el archivo de configuración /etc/ssh/ssh_config . Del mismo modo, para establecer la configuración solo para un usuario específico, edite ~/.ssh/config (cree el archivo si no existe). Inserte lo siguiente:
Host * ServerAliveInterval 300 ServerAliveCountMax 2
Esta configuración hará que el cliente o servidor SSH envíe un paquete nulo al otro lado cada 300 segundos (5 minutos) y se rinda si no recibe ninguna respuesta después de 2 intentos, momento en el que es probable que la conexión se haya completado. descartado de todos modos.
Desde la página man de ssh_config:
Número máximo de servidores activos:
Establece el número de mensajes activos del servidor (ver más abajo) que se pueden enviar sin que ssh(1) reciba ningún mensaje del servidor. Si se alcanza este umbral mientras se envían mensajes de servidor activo, ssh se desconectará del servidor y terminará la sesión. Es importante tener en cuenta que el uso de mensajes de servidor vivo es muy diferente de TCPKeepAlive (abajo). Los mensajes del servidor activo se envían a través del canal encriptado y, por lo tanto, no serán falsificables. La opción TCP Keepalive habilitada por TCPKeepAlive es falsificable. El mecanismo de servidor vivo es valioso cuando el cliente o el servidor dependen de saber cuándo una conexión se ha vuelto inactiva.
El valor predeterminado es 3. Si, por ejemplo, ServerAliveInterval (ver a continuación) se establece en 15 y ServerAliveCountMax se deja en el valor predeterminado, si el servidor deja de responder, ssh se desconectará después de aproximadamente 45 segundos. Esta opción se aplica solo a la versión 2 del protocolo; en la versión 1 del protocolo no existe ningún mecanismo para solicitar una respuesta del servidor a los mensajes activos del servidor, por lo que la desconexión es responsabilidad de la pila TCP.
Intervalo de actividad del servidor:
Establece un intervalo de tiempo de espera en segundos después del cual, si no se han recibido datos del servidor, ssh(1) enviará un mensaje a través del canal encriptado para solicitar una respuesta del servidor. El valor predeterminado es 0, lo que indica que estos mensajes no se enviarán al servidor, o 300 si se establece la opción BatchMode. Esta opción se aplica solo a la versión 2 del protocolo. ProtocolKeepAlives y SetupTimeOut son alias de compatibilidad específicos de Debian para esta opción.
Configuración del lado del servidor
Si tiene acceso de administrador al servidor, puede configurar las opciones ClientAliveInterval, TCPKeepAlive y ClientAliveCountMax en el archivo de configuración de SSHd. La ruta del archivo es /etc/ssh/sshd_config
# vi /etc/ssh/sshd_config ClientAliveInterval 30 TCPKeepAlive yes ClientAliveCountMax 99999
Deberá reiniciar el servidor SSH para que los cambios surtan efecto.
# service sshd restart