¿Por qué mis sesiones ssh se congelan después de un tiempo? [cerrado]

10

Disculpas si este no es el lugar correcto para hacer esta pregunta.

Regularmente necesito ssh a diferentes servidores. Ahora, desde mi máquina doméstica (linux mint), cuando me conecto a través de ssh, después de un tiempo de inactividad, mi shell ssh se congela y no hay forma de recuperarlo. Lo único que puedo hacer es '~. ", Que al menos me devuelve mi capa de inicio.

Cuando inicio sesión desde otras ubicaciones en los mismos servidores, no hay problema. ¿Podría ser un problema con mi ISP? ¿Cómo puedo investigar más sobre este?

Es realmente molesto, ya que tengo que restablecer las conexiones ssh después de la congelación, volver a donde estaba y reanudar el trabajo. Gracias

Fabio
fuente
¿Tienes una dirección IP estática? De lo contrario, es posible que su ISP le haya dado una dirección IP diferente a mitad de la sesión: verifique sus registros y vea.
usuario9517
No tengo una dirección IP estática. Verificará
Fabio

Respuestas:

20

Su NAT está cayendo su socket TCP después de un período de inactividad.

Su cliente ssh puede enviar opcionalmente noops periódicos al servidor, eliminando así este problema. Para hacer esto, agregue esto a su ~/.ssh/config:

Host *
  ServerAliveInterval 60

Alternativamente, vuelva a configurar su NAT para que no caduque elementos fuera de su tabla de estado tan rápido como lo es ahora.


Además de lo anterior, debe usar un multiplexor de terminal para sus sesiones, algo como GNU Screen o tmux. Con cualquiera de estos, puede recuperar su sesión en caso de desconectarse.

EEAA
fuente
Ya sea el NAT o cualquier firewall incorrectamente doloroso en la ruta que le gusta soltar sesiones TCP inactivas. No hay ninguna razón para abandonar las sesiones TCP inactivas, además de la falta de memoria para mantener los estados, pero eso debería ocurrir muy raramente si dimensiona y configura correctamente sus equipos. Es una buena característica saber si su proveedor / administrador es competente (o no).
zerodeux
0

En mi caso, el problema era de gran tamaño MTU. Puede cambiar MTU en el enrutador si usa NAT, pero yo cambio MTU en el servidor:

sudo /sbin/ifconfig eth0 mtu 1036
sudo /etc/init.d/networking restart

En Windows también puede aumentar esta clave:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"TcpMaxDataRetransmissions"=dword:00000010
Vasin Yuriy
fuente