¿Cómo hacer que la conexión de masilla ssh nunca se agote cuando el usuario está inactivo?

36

Tengo un servidor Ubuntu 12.04 que compré, si me conecto con masilla usando ssh y una masilla de usuario sudoer se desconecta por el servidor después de un tiempo si estoy inactivo

¿Cómo configuro Ubuntu para mantener esta conexión viva indefinidamente?

David MZ
fuente

Respuestas:

47

Si va a su configuración de masilla -> Conexión y establece el valor de "Segundos entre keepalives" a 30 segundos, esto debería resolver su problema.

Configuración de PuTTY

das Keks
fuente
2
?????? "0 para apagar" o 30 para apagar ????????? ¡Creo que debe poner 0 en lugar de 30!
kokbira
1
No, es el tiempo entre keepalives. Si lo establece en 0, no se envían keepalives pero desea que Putty envíe Keepalives para mantener viva la conexión.
das Keks
1
¿Por qué 30 segundos? Dijo que nunca se agota el tiempo, por lo que debería ser "9999999999999".
NoName
1
@NoName Porque la configuración es para el "intervalo de actividad". Eso significa que envía un "ping" cada 30 segundos para evitar que la conexión agote el tiempo de espera.
das Keks
1
Para mí funcionó sin la casilla de verificación TCP. Debido a que la conexión tcp se usa para enviar el "paquete nulo", puede que no sea necesario un keepalive tcp adicional. Si un enrutador o firewall corta las conexiones TCP inactivas en unos pocos segundos, esta casilla de verificación podría ayudar (o establecer los segundos entre keepalives en 5 o incluso 1).
das Keks
10

Además de la respuesta de "das Keks", hay al menos otro aspecto que puede afectar este comportamiento. Bash (generalmente el shell predeterminado en Ubuntu) tiene un valor TMOUTque gobierna (valor decimal en segundos) después de lo cual se agota el tiempo de espera de una sesión de shell inactiva y se cierra la sesión del usuario, lo que lleva a una desconexión en una sesión SSH.


Además, recomendaría encarecidamente que haga algo completamente diferente. Configure byobu(o incluso tmuxsolo, ya que es superior a GNU screen) y siempre inicie sesión y adjunte a una sesión preexistente (eso es GNU screeny tmuxterminología). De esta manera, incluso si se desconecta por la fuerza, seamos sinceros, siempre puede ocurrir un corte de energía o una interrupción de la red, siempre puede reanudar su trabajo donde lo dejó. Y eso funciona en diferentes máquinas. Por lo tanto, puede conectarse a la misma sesión desde otra máquina (por ejemplo, desde su casa). Las posibilidades son múltiples y es un verdadero refuerzo de productividad. Y para no olvidar, los multiplexores de terminales superan una de las grandes desventajas de PuTTY: no hay interfaz con pestañas. Ahora obtienes "pestañas"screentmux

apt-get install tmux
apt-get install byobu

Byobu es una buena interfaz para ambos multiplexores de terminales, pero tmuxes tan cómodo que, en mi opinión, es obsoleto byobuen gran medida. Entonces mi recomendación sería tmux.

También busque "dotfiles", en particular tmux.confy .tmux.confen la web, para muchas personalizaciones buenas para comenzar.

0xC0000022L
fuente
6

Vaya a las opciones de PuTTy -> Conexión

  1. Cambie el valor predeterminado para "Segundos entre keepalives (0s para apagar)"
    • cámbielo de 0 a 60 segundos (1 minuto): esto varía ... reduzca si 1 minuto no ayuda
  2. Marque la casilla de verificación "Habilitar TCP_keepalives (opción SO_KEEPALIVE)".
  3. Finalmente guardar la configuración para la sesión
Rajesh
fuente
0

Mantengo vivas mis sesiones de PuTTY monitoreando los registros cron

tail -f /var/log/cron

Quiero que la sesión PuTTY esté viva porque estoy proxys a través de calcetines.

Francis Suan
fuente
0

El tiempo de espera de 30 segundos nunca funcionó para mí, así que intenté jugar un poco y se me ocurrió una solución aumentando el tiempo de espera a 240 (4 minutos), ahora funciona de maravilla

shahnshah
fuente