¿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?

cnd
fuente

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.

Viejo contador de tiempo
fuente
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.

Warren Young
fuente
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.).

Arcege
fuente
6

Marque la siguiente opción en PuTTY:

ingrese la descripción de la imagen aquí

Franck Dernoncourt
fuente
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
KKN
fuente
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
hola zir
fuente
1

Puede usar el topcomando en el indicador de comandos de la shell. Esto mantendrá viva tu sesión.

Piyush Agrawal
fuente
Esto parece una solución alternativa en lugar de una solución.
Kusalananda
@Kusalananda Creo que las soluciones alternativas también pueden ser soluciones.
Peter dice reinstalar a Mónica el
0

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

psicoslave
fuente