Tengo, ServerAliveIntervaly en el caso de algunas máquinas, también ClientAliveIntervalconfigurado en 540 en archivos de configuración de cliente / servidor SSH (supongo que configurarlo en más de eso no sería una buena idea). Trabajo con muchas sesiones de SSH que actualmente se congelan después de unos minutos.
¿Cómo puedo arreglarlo? Lo que quiero es tener una sesión para no congelarse en absoluto, de modo que si abro una sesión a las 8 y no la uso durante 4 horas, por ejemplo, todavía la vuelvo a usar a las 12 sin tener que iniciar sesión nuevamente .

TCPKeepAlive yes?TCPKeepAlive yes- depende de la máquina.autossh...screenlugar. Pero todavía estoy votando su pregunta porque estoy experimentando el mismo problema después de solo un minuto o dos.Respuestas:
Los cambios que ha realizado
/etc/ssh/ssh_configy/etc/ssh/sshd_configson correctos pero aún no tendrán ningún efecto.Para que su configuración funcione, realice estos cambios de configuración en el cliente:
/etc/ssh/ssh_configServerAliveInterval El cliente enviará un paquete nulo al servidor cada 100 segundos para mantener viva la conexión
Paquete NULL Es enviado por el servidor al cliente. El cliente envía el mismo paquete al servidor. Un paquete TCP NULL no contiene ningún indicador de control como SYN, ACK, FIN, etc., porque el servidor no requiere una respuesta del cliente. El paquete NULL se describe aquí: https://tools.ietf.org/html/rfc6592
Luego configurando la parte sshd en el servidor.
/etc/ssh/sshd_configClientAliveInterval El servidor esperará 60 segundos antes de enviar un paquete nulo al cliente para mantener viva la conexión
TCPKeepAlive está ahí para garantizar que ciertos firewalls no eliminen las conexiones inactivas.
ClientAliveCountMax Server enviará mensajes vivos al cliente aunque no haya recibido ningún mensaje del cliente.
Finalmente reinicie el
ssh serverservice ssh restartoservice sshd restartdependiendo del sistema en el que se encuentre.fuente
ServerAliveCountMaxtambién se necesita un alto para que esto sea lo más confiable posible. Y si ambosServerAliveIntervalyClientAliveIntervalestán situados lo suficientemente baja, no creo que no habrá necesidad deTCPKeepAlive. Además, si hay middleboxes, aún pueden perder el estado incluso con todas las configuraciones mencionadas anteriormente configuradas exactamente correctas. Puede ser útil usar MPTCP (si el cliente y el servidor lo admiten).ClientAliveIntervalyClientAliveCountMaxson opciones de servidor ssh, por lo tanto, parasshd_configy nossh_configssh_configlas nuevas sesiones leerá ese archivo. El/etc/environmentarchivo es una cosa diferente que tiene el formato deVAR="value"sin espacios, porVAR = "value"lo que no sería válido. Buscar de/etc/ssh/ssh_configesa manera, por ejemplo, leerá:Port 22oHost *lo que los tratará como comandosSugerencia personal: uso
screenen el host remoto; logrará mantener viva su conexión mientras permanezca activa en una terminal.Esto es lo que normalmente agrego
/etc/screenrcpara una identificación rápida de mis sesiones de pantalla:EDITAR: Sugerencias.
La
hardstatuscadena mostrará una línea de estado inferior como esta:El búfer de desplazamiento hacia atrás también se extiende a 8192 líneas en lugar de las habituales 1000-1500 (dependiendo de la distribución).
fuente
screenrcarchivo? ¿Cómo configuro el sistema la pantalla de inicio / tmux justo después de iniciar sesión?screenno mantiene viva su conexión ssh. Ejecuta procesos en un terminal virtual independiente del terminal de usuario al que se conecta parasshque el proceso no dependa de su conexión. Aún perderá susshconexión hasta que se resuelva.screen, aconsejo a los nuevos usuarios para comenzartmux.Con OpenSSH:
Necesitas habilitar
tanto en su cliente ssh_config (p. ej.
/etc/ssh/ssh_configo en~/.ssh/config) como en su servidor SSH de destino que ejecuta OpenSSH (p. ej. / etc / ssh / sshd_config).Entonces, cada vez que su conexión está inactiva, OpenSSH envía un paquete ficticio a su host de destino ...
fuente
The default is ''yes'' (to send TCP keepalive messages), and the server will notice if the network goes down or the client host crashes....this means that connections will die if the route is down temporarily, and some people find it annoying.corte linux.die.net/man/5/sshd_config"[…] network goes down […] client host crashes […] route is down […]"son errores graves que ninguna configuración SSH puede detectar. El problema principal aquí son las sesiones SSH inactivas, no las fallas de la red. Por lo tanto, para resumirlo: habilíteloTCPKeepAlive yestanto en el servidor como en el cliente. - establecidoClientAliveIntervalen el servidor - establecidoIdleTimeouten el servidor - establecidoClientAliveCountMaxEso debería ser el truco ...Si el problema es una computadora portátil hibernada o una conexión de red menos que perfecta, recomendaría usar la
moshque se ejecutasshy permite la reconexión automática.Desde el sitio web :
En combinación con
tmux(o el anteriorscreen), esto me permite conectarmessha un servidor desde mi computadora portátil y permanecer conectado durante días, incluso cuando cambie las conexiones wifi y sobreviva la pérdida de datos móviles.fuente
Verifique la configuración de sshd en la máquina host
/etc/sshd_configpara laIdleTimeoutconfiguración .fuente