¿Cómo hacer masilla para no romper mi sesión después de un tiempo?


34

Cada vez puttyse cierra la sesión después de un tiempo si está inactiva.

No hay ningún timeparámetro sobre la masilla, entonces, ¿cómo puedo mantener mi puttysesión ssh siempre viva?

Respuestas:


15

Otra cosa para verificar es si su sistema está configurando la variable de entorno TMOUT. Para verificar esto, simplemente puede hacer:

env | grep TMOUT

o

echo $TMOUT

Si está configurado, puede cambiarlo o desarmarlo. Para cambiar el valor:

export TMOUT=3600

Donde el número es el número de segundos hasta que se desconecta. De lo contrario, desactívela para desactivar la función:

unset TMOUT

Tenga en cuenta que puede ser que el administrador del sistema lo haya configurado por razones de seguridad. Por lo tanto, si no es el administrador del sistema, puede verificar esto antes de cambiar cualquier cosa usted mismo.


48

Habilite SSH keep-alives cambiando la siguiente configuración a un valor positivo:

Página de conexión del cuadro de diálogo de configuración de PuTTY

Un valor de 300 debería ser suficiente en la mayoría de los casos. (5 minutos). Esto hace que PuTTY envíe paquetes nulos SSH al host remoto periódicamente, de modo que la sesión no se agote.

Tenga en cuenta que no queremos que la SO_KEEPALIVEopción esté más abajo en esa página. Ese es un mecanismo de nivel mucho más bajo que se usa mejor solo cuando el protocolo de nivel de aplicación no tiene su propio mecanismo keepalive. SSH lo hace, por lo que no deberíamos usar keepalives TCP en este caso.

Hay otras cosas que pueden hacer que se caigan las conexiones, pero esta es una primera cosa sólida para intentar. Si no funciona, deberías considerar estas otras cosas: tiempos de espera de VPN, tiempos de espera de enrutadores, cambios de configuración en el servidor SSH remoto, conexiones defectuosas, etc.


3
Alternativamente, ejecute algo que produzca resultados continuos, como topcuando está fuera.
LawrenceC

1
@ultrasawblade: Esa es una reparación de cinta adhesiva; simplemente trata el síntoma pero no aborda el verdadero problema.
Kevin M

¿Esta configuración se aplica a la CLI de Windows? Quiero decir, en lugar de guardar sesiones, creo enlaces a putty.exe pasando credenciales de inicio de sesión como argumentos (putty.exe host -l root -pw contraseña). Si no, ¿hay algún argumento para aplicar esta opción a través de la CLI?
Mc Kernel

3
Esta es una excelente solución, especialmente cuando está trabajando en una conexión inestable y no tiene que hacer un solo cambio en el servidor (a diferencia de la solución aceptada).
itoctopus

¿Alguien sabe cómo especificar esto a través de la línea cmd?
Janac Meena

8

Además de las otras respuestas, sugeriría que se ejecute screenpara poder tener la administración de la sesión, incluso si la masilla termina (muerte de conexión, vpn cayendo, etc.).


6

Marque la siguiente opción en PuTTY:

ingrese la descripción de la imagen aquí


Lamentablemente, SO_KEEPALIVE parece que solo se envía cada dos horas (al menos de manera predeterminada), por lo que un mejor nombre para ellos sería "verificar si está muerto" LOL
rogerdpack

3

Simplemente ejecute esto en su masilla, asegúrese de activar su sesión cada 10 minutos.

 while true; do date; sleep 600; done

Siempre ejecuto esto en mi servidor y no funciona.
cokedude

1

Si nada de lo anterior no ayudó,
¡tiene que cambiar las configuraciones sshd de su sistema!
¡TENGA EN CUENTA QUE NECESITARÁ PERMISOS DE RAÍZ PARA ESTO!

Edite su sshd_config archivo, en mi caso fue localizado/etc/ssh/sshd_config

el contenido era:

ClientAliveInterval 300  
ClientAliveCountMax 0

cambiar a:

ClientAliveInterval 6000  
ClientAliveCountMax 3

No olvides

service sshd restart


0

En el Connection>SSHmenú de masilla , use el siguiente valor como Remote command: bash --rcfile <(echo 'source ~/.bash_profile; unset TMOUT').

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.