Encontré esta pregunta, pero lo siento, no entiendo muy bien la configuración de las dos variables ServerAliveInterval
y ClientAliveInterval
mencionado en la respuesta aceptada. Si se agota el tiempo de espera de mi servidor local, ¿debería establecer este valor en cero? Entonces, ¿nunca se agotará el tiempo? ¿Debería configurarlo en 300 segundos o algo así?
Mi pregunta es simple, algunas de mis conexiones caducan cuando suspendo y luego vuelvo a suspender mi computadora portátil con la respuesta Write failed: Broken pipe
y algunos no. ¿Cómo puedo configurar correctamente un sshd local para que no falle con una tubería rota?
Respuesta aceptada:
ServerAliveInterval:número de segundos que el cliente esperará antes de enviar un paquete nulo al servidor (para mantener viva la conexión).
ClientAliveInterval:número de segundos que el servidor esperará antes de enviar un paquete nulo al cliente (para mantener viva la conexión).
Establecer un valor de 0 (el valor predeterminado) deshabilitará estas funciones, por lo que su conexión podría caerse si está inactiva durante demasiado tiempo.
ServerAliveInterval parece ser la estrategia más común para mantener viva una conexión. Para evitar el problema de la tubería rota, aquí está la configuración ssh que uso en mi archivo .ssh/config:
Host myhostshortcut
HostName myhost.com
User barthelemy
ServerAliveInterval 60
ServerAliveCountMax 10
La configuración anterior funcionará de la siguiente manera,
- El cliente esperará inactivo durante 60 segundos (tiempo ServerAliveInterval) y enviará un "paquete nulo sin operación" al servidor y esperará una respuesta. Si no recibe respuesta, seguirá intentando el proceso anterior hasta 10 (ServerAliveCountMax) veces (600 segundos). Si el servidor aún no responde, entonces el cliente desconecta la conexión ssh.
ClientAliveCountMax en el lado del servidor también podría ayudar. Este es el límite de tiempo que un cliente puede permanecer sin responder antes de ser desconectado. El valor predeterminado es 3, como en tres ClientAliveInterval.