Този урок ви предлага много добро решение, ако използвате SSH връзки и срещнете грешката: SSH Connection Timing Out / Broken Pipe. Неправилно казана грешка. Това е съобщение, което уведомява, че връзката между вашия компютър и сървъра, към който е свързан, е затворена Putty или Terminal.
И двамата като потребител на Windows както и от Mac (през последните 10 години) прекарах много време в SSH връзки към уеб сървъри, имейл сървъри, облак и други резервни пакети. Любимо разпространение на Linux е несъмнено CentOS.
Едно от най-стресиращите неща за правене administratorii сървърът е за прекъсване на SSH връзки. Или внезапно, докато се закопчава в Putty или Terminal (най-често това е проблем с локалната връзка) или след време на "idle”- периодът от време, през който той не взаимодейства с отдалечения сървър чрез SSH сесията.
Ако използвате Mac и използвайте помощната програма Terminal за отдалечена връзка чрез SSH, тогава със сигурност след известно бездействие сте били прекъснати със съобщението:client_loop: send disconnect: Broken pipe”. Дадох решението в статията тук, в който казах, че може да се добави в "/etc/ssh/ssh_config
" линията:
Host *
ServerAliveInterval 120
Горното решение е валидно за потребители на Macи честно да бъда най-новите актуализации на macOS Не запазвам направените промени във файла след рестартиранеssh_config
", И проблемът с изключването на неактивна сесия се връща.
Решение, чрез което можем да предотвратим изключването на SSH сесия на разстояние, зададено от Terminal (macOS) Или Putty (Windows), е като освен „ServerAliveInterval
”От нашия компютър, за да определим отдалечения сървър за периодична комуникация с SSH приложението / клиента.
Ето защо трябва да поставим директивата "ClientAliveInterval
"В"sshd_config
”На сървъра, към който се свързваме.
Предотвратяване на SSH Connection Timing Out / Broken Pipe (ssh_config Съвети)
1. Свързваме се със сървъра, който искаме да активираме и задаваме времеви интервал за "ClientAliveInternal". отворен SSH in Putty, Terminal или друга подобна помощна програма и ние удостоверяваме с потребителя root
.
ssh root@server.hostname
2. Изпълнете командния ред за търсене във файла "sshd_config"ако"ClientAliveInterval” е активен и какъв е зададеният период от време.
sudo grep "ClientAliveInterval" /etc/ssh/sshd_config
В нашия сценарий "ClientAliveInterval” е забранено и стойността на времевия интервал е нула.
[root@buffy ~]# sudo grep "ClientAliveInterval" /etc/ssh/sshd_config
#ClientAliveInterval 0
[root@buffy ~]#
Хаштагът "#
Msgstr "Поставено пред ред, го отменя. Тя е неактивна.
3. Отваряме с редактора "nano
"Или"vim
„Файл“sshd_config
". Предпочитам "nano".
sudo nano /etc/ssh/sshd_config
4. Изтриване “#
„Пред линията“ClientAliveInterval
”И задайте брой секунди: 60, 120 ...
ClientAliveInterval 120
ClientAliveCountMax 10
5. Запазете промените и рестартирайте услугата "sshd
".
sudo systemctl restart sshd
ClientAliveInterval
: Това е интервалът от време в секунди, когато сървърът изпраща пакет с нулеви данни на клиента / приложението, през който сме свързани със сървъра. Тази практика ще поддържа връзката жива / активна.
ClientAliveCountMax
: Неотзивчиви SSH клиенти за 10 цикъла от 120 секунди (определен от "ClientAliveInterval") връзката ще бъде прекъсната. Тоест след 20 минути, в които клиентът SSH не отговори на нулеви пакети, изпратени от сървъра.
С тези промени връзката SSH тя ще бъде по-стабилна и ще остане толкова безопасна.