防止SSH连接计时 /折断管道

Acest tutorial iti ofera o rezolvare foarte buna daca folosesti conexiuni SSH si intampini eroarea: SSH Connection Timing Out / Broken Pipe. Impropriu spus eroare. Este un mesaj care anunta ca a fost inchisa conexiunea dintre calculatorul tau si serverul la care era conectat prin Putty 或者 Terminal

Atat ca utilizator de Windows cat si de Mac (in ultimii 10 ani) mi-am petrecut foarte mult timp in conexiuni SSH la web servere, servere de e-mail, cloud si alte balarii de backup. Distributia preferata de Linux este fara indoiala CentOS

Una dintre chestiile cele mai stresante pentru administratorii de servere este sa se intrerupa conexiunile SSH. Fie subit in timp ce butoneaza in Putty sau Terminal (de cele mai multe ori fiind vorba despre o problema de conexiune locala), fie dupa un timp deidle” – perioada de timp in care nu interactioneaza cu serverul la distanta prin sesiunea SSH.

Daca sunteti utilizator de Mac si folositi utiliarul Terminal pentru conexiunea la distanta prin SSH, atunci cu siguranta dupa in timp de inactivitate ati fost deconectat cu mesajul:“client_loop: send disconnect: Broken pipe”. Rezolvarea am dat-o in articolul de aici, in care am spus ca se poate adauga in/etc/ssh/ssh_configlinia:

Host *
ServerAliveInterval 120

Solutia de mai sus este valabila pentru utilizatorii de Mac, iar sincer sa fiu cele mai recente actualizari ale macOS nu retin dupa restart modificarile facute in fisierulssh_config, iar problema cu deconectarea unei sesiuni in idle revine.

O solutie prin care putem preveni deconectarea unei sesiuni SSH la distanta stabilita prin 终端 (macOS) sau Putty (Windows), este ca pe langaServerAliveIntervalde pe calculatorul nostru, sa determinam si serverul de la distanta sa comunice periodic cu aplicatia / clientul SSH.
Pentru asta trebuie sa punem directivaClientAliveInterval” 在 “sshd_configpe serverul la care ne conectam.

Prevent SSH Connection Timing Out / Broken Pipe (ssh_config 尖端)

1. Ne conectam la serverul pe care dorim sa activam si sa stabilim un interval de timp pentruClientAliveInternal. Deschidem SSHPutty,,,, Terminal sau alt utilitar asemanator si ne autentificam cu user root

ssh root@server.hostname

2. Executam linia de comanda pentru a cauta in fisierulsshd_config” 达卡 “ClientAliveIntervaleste activ si care este perioada de timp setata.

sudo grep "ClientAliveInterval" /etc/ssh/sshd_config

In scenariul nostruClientAliveIntervaleste 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 editornano” 或者 “vimfisierulsshd_config. Eu prefernano“。

sudo nano /etc/ssh/sshd_config

4. Stergem#din fata linieiClientAliveIntervalsi setam un numar de secunde: 60, 120

ClientAliveInterval 120
ClientAliveCountMax 10

5. Salvam modificarile si restartam serviciulsshd“。

sudo systemctl restart sshd

ClientAliveInterval : Este intervalul de timp in secunde la care serverul ca trimite un pachet de date null catre client / aplicatia prin care suntem conectati la server. Aceasta practica va tine conexiunea in viata / activa.

ClientAliveCountMax : Clientii SSH care nu raspund in 10 cicluri de 120 de secunde (setate deClientAliveInterval) se va intrerupe conexiunea. Adica dupa 20 de minute in care clientul SSH nu a raspuns pachetelor nule trimise de server.

Cu aceste modificari conexiunea SSH va fi mai stabila si ramane la fel de sigura.

从2006年开始,我对技术充满热情,在StealthSetts.com上写作。我在操作系统方面拥有丰富的经验:MacOS,Windows和Linux,以及编程语言和博客平台(WordPress)和在线商店(WooCommerce,Magento,Magento,Presashop)。

您的教程,有用的提示和新闻。 防止SSH连接计时 /折断管道
发表评论