ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Команды Linux Как предотвратить ошибку SSH Broken Pipe

Команды Linux Как предотвратить ошибку SSH Broken Pipe

При подключении к удаленному серверу вы можете использовать безопасный протокол передачи, такой как SSH. С SSH вам нужен удаленный IP-адрес машины, к которой вы хотите подключиться, и имя пользователя. После выполнения команды SSH connect вам будет предложено ввести пароль для завершения подключения.

К сожалению, иногда вы можете столкнуться с ошибкой разрыва канала SSH, которая отключает вас от удаленного сервера и мешает вашей деятельности. Вы быстро разочаруетесь, если не поймете, что означает эта ошибка или как ее исправить. В этом посте объясняется все о предотвращении ошибки разрыва канала SSH, чтобы избежать прерываний. Взглянем!

 

Что такое ошибка SSH Broken Pipe

Существуют разные случаи, когда может возникнуть ошибка разрыва канала SSH. В большинстве случаев вы пытаетесь войти на удаленную машину только для того, чтобы после входа в систему произошла ошибка, и вы в конечном итоге отключились. Эта ошибка может вас расстроить, тем более что вы должны неоднократно инициировать соединение.

Ошибка разорванного канала означает, что клиент и сервер не могут соединиться, и их TCP был нарушен. Иногда ошибка может возникать, когда возникает ошибка тайм-аута периода интервала для запросов между клиентом и сервером. Клиент полагается на период интервала для получения ответов. Когда ни один из них не будет разделен или достигнуты установленные интервалы, вы столкнетесь с ошибкой сломанной трубы.

 

Как предотвратить ошибку SSH Broken Pipe

Ошибка сломанной трубы SSH нежелательна; вы можете использовать различные меры, чтобы убедиться, что вы не столкнулись с этим. Цель состоит в том, чтобы поддерживать связь между клиентом и сервером, настраивая различные показатели в файле конфигурации SSH для клиента и сервера. При предотвращении разрыва канала SSH следует учитывать две метрики: ClientAliveInterval и ClientAliveCountMax.

ClientAliveCountMax — это количество циклов, после которых соединение прерывается, если клиент SSH не отвечает. ClientAliveInterval — это интервал времени в секундах, в течение которого сервер отправляет пустые пакеты данных подключенному клиенту, чтобы гарантировать, что соединение остается активным.

Вот как вы можете предотвратить ошибку разрыва канала SSH:

 

На стороне клиента

Вы можете указать, как долго должно поддерживаться соединение SSH, прежде чем произойдет отключение. Таким образом, вы увеличиваете ServerAliveInterval. Вы можете настроить его при подключении SSH или создании файла конфигурации на стороне клиента.

При подключении через SSH вы можете использовать следующий синтаксис, чтобы предотвратить разрыв канала SSH:

ssh -o ServerAliveInterval=300 username@server_ip

 

Кроме того, вы можете создать файл конфигурации SSH. В данном случае мы использовали команду touch:

touch ~/.ssh/config

 

andreyex@annihilator:-$ touch ~/.ssh/config
andreyex@annihilator: $
andreyex@annihilator: $ ls ~/.ssh/
config known_hosts
andreyex@annihilator: $

 

После создания правильно измените права доступа к файлу с помощью следующей команды:

chmod 600 ~/.ssh/config

 

andreyex@annihilator: $ 
andreyex@annihilator: $ chmod 600 ~/.ssh/config 
andreyex@annihilator: $

 

Наконец, повторите предпочитаемый ServerAliveInterval. Мы устанавливаем его на 5 минут в следующем примере:

echo “ServerAliveInterval 300” >> ~/.ssh/config

 

andreyex@annihilator: $ echo "ServerAliveInterval 300" >> ~/.ssh/config
andreyex@annihilator:- $
andreyex@annihilator: $ cat ~/.ssh/config
ServerAliveInterval 300
andreyex@annihilator: $

 

Таким образом, вы предотвратили ошибку SSH сломанной трубы.

 

На стороне сервера

Вы можете получить файл конфигурации в папке /etc/ssh/sshd_config на стороне сервера. В файле есть метрики ClientAliveInterval и ClientAliveCountMax, которые можно настроить, чтобы предотвратить ошибку разрыва канала SSH.

#ClientAliveInterval 0 
#ClientAliveCountMax 3

 

Если ваш ClientAliveInterval установлен на 100 секунд, а ClientAliveCountMax установлен на 4, сервер отправляет живые сообщения каждые 100 секунд четыре раза. После чего он отображает ошибку сломанной трубы SSH.

Итак, чтобы предотвратить возникновение ошибки, вы должны открыть этот файл конфигурации и установить предпочтительные параметры. По умолчанию метрики закомментированы. Удалите хэштег (#) в начале, чтобы раскомментировать их. Вот пример настройки и раскомментирования метрик:

GlientAliveInterval 100 
ClientAliveCountMax 3
#UseDNS no
#PidFile /run/sshd.pid

 

Сохраните файл и выйдите. При этом вы никогда не столкнетесь с ошибкой.

 

Заключение

Ошибка разрыва канала SSH возникает, когда клиенту не удается получить ответы от клиента, что приводит к отключению соединения. Вы можете предотвратить это, настроив ClientAliveInterval и ClientAliveCountMax на стороне сервера. Тем не менее, вы можете использовать метрику ServerAliveInterval при подключении к нему через SSH или создать файл конфигурации SSH на клиенте и добавить ServerAliveInterval. В этом посте подробно описаны два варианта.

Exit mobile version