Este tutorial le ofrece una muy buena solución si utiliza conexiones SSH y encuentra el error: Tiempo de espera de conexión SSH agotado/tubería rota. Error mal dicho. Es un mensaje que anuncia que se cerró la conexión entre su computadora y el servidor al que estaba conectado. Putty o Terminal.
Tanto como usuario de Windows como de Mac (en los últimos 10 años) pasé mucho tiempo en Conexiones SSH a servidores web, servidores de correo electrónico, nube y otros sistemas de respaldo. La distribución preferida de Linux es sin duda CentOS.
Una de las cosas más estresantes para los administradores de servidores es para interrumpir las conexiones SSH. Ya sea de repente mientras se abotona Putty o Terminal (la mayoría de las veces es un problema de conexión local), o después de un tiempo “idle” – el periodo de tiempo en el que no interactúa con el servidor remoto a través de la sesión SSH.
Si eres usuario de Mac y utilizas la herramienta Terminal para conexión remota vía SSH, entonces seguramente después de alguna inactividad te has desconectado con el mensaje:client_loop: enviar desconexión: tubería rota". Le di la solución en el artículo aquí, en el que dije que se puede agregar en “/etc/ssh/ssh_config” línea:
Host *
ServerAliveInterval 120
La solución anterior es válida para usuarios de Mac y, para ser honesto, las últimas actualizaciones de macOS no conservan los cambios realizados en el archivo después de reiniciar. “ssh_config“, y vuelve el problema con la desconexión de una sesión inactiva.
Una solución mediante la cual podemos evitar la desconexión de una sesión SSH a la distancia establecida por Terminal (macOS) o Masilla (Windows), es como al lado “ServerAliveInterval” de pe calculatorul nostru, sa determinam si serverul de la distanta sa comunice periodic cu aplicatia / clientul SSH.
Pentru asta trebuie sa punem directiva “ClientAliveInterval” en “sshd_config” pe serverul la care ne conectam.
Prevent SSH Connection Timing Out / Broken Pipe (ssh_config Consejos)
1. Ne conectam la serverul pe care dorim sa activam si sa stabilim un interval de timp pentru “ClientAliveInternal“. Deschidem SSH en Putty, Terminal sau alt utilitar asemanator si ne autentificam cu user root.
ssh [email protected]
2. Executam linia de comanda pentru a cauta in fisierul “sshd_config” daca “ClientAliveInterval” este activ si care este perioada de timp setata.
sudo grep "ClientAliveInterval" /etc/ssh/sshd_config
In scenariul nostru “ClientAliveInterval” este dezactivat si valoare intervalului de timp este zero.
[root@buffy ~]# sudo grep "ClientAliveInterval" /etc/ssh/sshd_config
#ClientAliveInterval 0
[root@buffy ~]#
Semnul hashtag “#” pus in fata unei linii, o anuleaza. Este inctiva.
3. Deschidem cu editor “nano” o “vim” ARCHIVO “sshd_config“. prefiero “nano“.
sudo nano /etc/ssh/sshd_config
4. Stergem “#” din fata liniei “ClientAliveInterval” si setam un numar de secunde: 60, 120 …
ClientAliveInterval 120
ClientAliveCountMax 10
5. Salvam modificarile si restartam serviciul “sshd“.
sudo systemctl restart sshd
ClientAliveInterval : Es el intervalo de tiempo en segundos en el que el servidor envía un paquete de datos nulo al cliente/aplicación a través de la cual estamos conectados al servidor. Esta práctica mantendrá la conexión viva/activa.
ClientAliveCountMax : Los clientes SSH no responden en 10 ciclos de 120 segundos (ahorrar “ClientAliveInterval“) la conexión se interrumpirá. Es decir, después de 20 minutos en los que el cliente SSH no respondió a los paquetes nulos enviados por el servidor.
Con estos cambios la conexión SSH Será más estable y seguirá siendo igual de seguro.