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.

Andrés
fuente

Respuestas:

8

Si. Configure SSH para enviar paquetes keepalive .

Sophie Alpert
fuente
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.

Andrés
fuente
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.

justinhj
fuente
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.

brianegge
fuente
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.

staticsan
fuente
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.

Jimmy Hedman
fuente
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).

dr-jan
fuente
0

Escriba su perfil de shell

exportar TMOUT = 0

exportar TIEMPO DE ESPERA = 0

setatakahashi
fuente
0

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

Rory
fuente
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.

Drew Stephens
fuente
-1

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

afa
fuente
-1

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

ClientAliveInterval 600
ClientAliveCountMax 0
Franco
fuente