tiempo de espera inactivo de sesión ssh


9

La máquina Solaris en la que hacemos la mayor parte de nuestro desarrollo tiene el molesto hábito de desconectar las sesiones SSH. No importa si el cliente es mi escritorio Ubuntu, mi escritorio Solaris o mi escritorio Windows (masilla); El factor común es la gran máquina Solaris.

¿Hay algo que pueda hacer para evitar que esto suceda? Es molesto cuando tomas un descanso para almorzar y las sesiones de terminal que tienes abiertas y configuradas con delicadeza se congelan, por lo que debes matarlas a todas y restablecer todo tu contexto.

Respuestas:


8

Si. Configure SSH para enviar paquetes keepalive .


Ya tenemos "KeepAlive Yes" en / etc / ssh / sshd_config. Sin embargo, no tenía un valor ClientAliveInterval; así que agregué eso y veremos cómo va eso.
Andrew

1
También vale la pena señalar que también puedes hacerlo al revés. Si no pudo cambiar la configuración del servidor, puede hacer que el cliente ssh envíe los paquetes de mantener vivo utilizando ServerAliveInterval.
SpoonMeiser 05 de

La ubicación de ese artículo cambió. Aquí está el actual: forumone.com/blogs/post/quick-tip-ssh-keepalive
John Bachir

2

He descubierto que el comportamiento keepalive no funcionó del todo. Intenté agregar el ServerAliveInterval al script ~ / .ssh / config pero no funciona bien con git.

Lo que terminé haciendo es agregar una marca de tiempo a mi barra de estado de 'pantalla'. Esta es suficiente actividad para mantener la conexión.


Si desea esta funcionalidad fuera de la pantalla (1), consulte Spinner
Drew Stephens el

1

También puede configurar Putty para enviar paquetes vivos.

En Configuración, Conexión, Segundos entre keepalives.


1

Primero, debes determinar si es tu shell el que te está desconectando o ssh. Para probar, ssh en su máquina remota y vi o menos un archivo.

Si mucho tiempo después todavía puede moverse menos / vi, entonces ssh está bien. En este caso, determine qué shell está utilizando y desactive el tiempo de espera. Lo más probable es que el shell te esté agotando y no SSH. Sin embargo, algunos cortafuegos cerrarán las sesiones inactivas si no se envían los mensajes vivos.

El administrador de Solaris puede evitar que desactive el tiempo de espera en su shell, haciendo que la configuración sea de solo lectura. Esto es poco probable, pero posible. Por lo general, puede evitar esto utilizando un shell diferente.


1

Si tiene problemas para volver a configurar su shell nuevamente, puede usar la pantalla GNU. Si se agota el tiempo de espera de su sesión de SSH, simplemente inicie sesión nuevamente y vuelva a conectarse y su shell estará como estaba.


0

Si ejecuta tcsh en la máquina Solaris, se puede establecer la variable de desconexión automática. Si lo configura en 0 (establecer autologout = 0) o deshabilitarlo (deshabilitar autologout) se detendrá la sesión.


0

Esto puede ser un arenque rojo, pero intente

unset TMOUT

en su indicador de shell. Esto ciertamente funcionó para mí en el pasado, pero no recuerdo si está restringido a ciertas arquitecturas (o conchas).



0

¿Podrías correr topen otra terminal? Eso debería generar tráfico regular?


0

Spinner suena como la solución perfecta para su problema. Periódicamente envía caracteres en su sesión para evitar que se agote el tiempo de espera.


-1

Siempre he tenido éxito con 'ClientAliveInterval 300' en servidores linux / bsd.


-1

Verifique su sshdconfiguración para líneas como estas en /etc/ssh/sshd_config:

ClientAliveInterval 600
ClientAliveCountMax 0
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.