Этот учебник предлагает вам очень хорошее решение, если вы используете 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) или шпатлевка (Windows), как кроме «ServerAliveInterval
«С нашего компьютера, чтобы определить удаленный сервер для периодической связи с приложением / клиентом SSH.
Вот почему мы должны поставить директиву "ClientAliveInterval
"В"sshd_config
«На сервере, к которому мы подключаемся.
Предотвращать SSH Connection Timing Out / Broken Pipe (ssh_config Подсказки)
1. Подключаемся к серверу, который хотим активировать и устанавливаем временной интервал для "ClientAliveInternal". открыть SSH in Putty, Terminal или другую подобную утилиту, и мы аутентифицируемся с пользователем root
.
ssh [email protected]
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 ~]#
Хэштег "#
"Ставится перед строкой, отменяет ее. Она неактивна.
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 он будет более стабильным и останется таким же безопасным.