Para que quede claro:estoy buscando una solución que comience una vez después de iniciar sesión, y luego quiero usar esa terminal, irme, volver dos horas después y continuar trabajando, sin escribir nada antes de irme.
El problema es que hay algo (normalmente un cortafuegos o un equilibrador de carga) que está eliminando las sesiones inactivas. Si configura las sesiones keepalives, las keepalives evitarán que los dispositivos de red consideren la sesión como inactiva.
Corrección de Linux/Unix/Cygwin OpenSSH :
La solución más simple es habilitar los keepalives del cliente ssh; este ejemplo enviará un ssh keepalive cada 60 segundos:
ssh -o "ServerAliveInterval 60" <SERVER_ADDRESS>
Si desea habilitar esto en todas sus sesiones, póngalo en su /etc/ssh/ssh_config
o ~/.ssh/config
:
ServerAliveInterval 60
Para obtener más información, consulte el ssh_config
página de manual
Corrección de masilla :
Guarde esto en su "Configuración predeterminada" de PuTTY...
- Haga clic en Conexión
- Escriba 60 en "Segundos entre keepalives"
Además de la respuesta de Mike Pennigton, me gustaría informarle sobre ServerAliveCountMax
también.
- El
ServerAliveInterval
enviará un keepalive cada x segundos (el valor predeterminado es 0 , que deshabilita esta función si no se establece en otra cosa). - Esto se hará
ServerAliveCountMax
veces si no se recibe respuesta. El valor predeterminado deServerAliveCountMax
es 3 (consulte la página de manual ssh_config).
Ejemplo:si establece ServerAliveInterval
a 60 y deja ServerAliveCountMax
tal como está, esto significa que el keepalive solo esperará a 3 * 60 = 180 seconds =
Para aumentar esto a, p. 2 horas de tratar de mantener viva la conexión, puedes hacer:
Por comando:
Por lo tanto, debe considerar establecer
ssh -o "ServerAliveInterval 60" -o "ServerAliveCountMax 120" <SERVER_ADDRESS>
Persistente:
Para hacerlo persistente, escríbalo en /etc/ssh/ssh_config
(se aplicará a todo el sistema) o ~/.ssh/config
(aplicará solo para el usuario):
ServerAliveInterval 60
ServerAliveCountMax 120
Nota
Como señaló correctamente dislick, esto podría no ser lo que desea, dependiendo de su situación:
- Si desea terminar rápidamente la sesión tan pronto como el servidor ya no responda, debe elegir un valor bajo para
ServerAliveCountMax
. - Si está más interesado en mantener una conexión ya establecida (por ejemplo, va en tren y tiene una latencia alta), debe elegir un valor más alto para
ServerAliveCountMax
para permitirssh
para seguir intentando restablecer la conexión.
Véase también:
- unix.stackexchange.com:¿cuál es el tiempo de inactividad predeterminado para OpenSSH?
Estoy usando Mobaxterm y también me he encontrado con este problema. Mobaxterm también incluye una opción para mantener vivo al cliente cuando está inactivo. Ir a Settings -> Configuration -> SSH
. Hay una sección titulada SSH settings
, marca la opción SSH keepalive
. Entonces el problema debería desaparecer.