Ошибки

Ошибка SSH Broken pipe: соединение с сервером оборвалось

Соединение с сервером оборвалось, пока вы работали или отходили. Подключитесь заново, а одна строка в config уберёт обрывы при простое.

Обновлено 09.10.2026≈ 4 мин чтения
Содержание 10

Что сделать прямо сейчас

  1. Если окно не реагирует на клавиши, нажмите Enter, затем ~ и . — см. раздел про зависшее окно.
  2. Подключитесь заново той же командой.
  3. Добавьте в config строку ServerAliveInterval — шаг 2.
  4. Долгие команды запускайте в tmux — шаг 3.

Вместо ВАШ_IP подставьте адрес своего сервера из панели провайдера. В примерах вывода стоит адрес 203.0.113.10 — у вас будет свой IP.

Что значит это сообщение

Варианты сообщения:

client_loop: send disconnect: Broken pipe
Connection to 203.0.113.10 closed by remote host.
Connection to 203.0.113.10 closed.
Timeout, server 203.0.113.10 not responding.

Broken pipe значит, что ssh попытался отправить данные, а соединения уже нет: оно оборвалось раньше, пока вы ничего не делали. Closed by remote host — соединение закрыл сервер или что-то на пути к нему. Timeout, server not responding — ssh сам закрыл сессию, потому что сервер перестал отвечать на проверки связи (шаг 2).

Почему соединение обрывается:

  • долго не было никаких действий, и роутер или оборудование провайдера по дороге к серверу забыли о соединении;
  • компьютер уснул или сменил подключение к интернету — например, ноутбук переключился с Wi-Fi на мобильный интернет;
  • сервер перезагрузили — вы сами, обновление или провайдер.

Шаг 1. Подключитесь заново

Подключитесь той же командой, что и раньше:

ssh root@ВАШ_IP

Если не получается, проверьте в панели провайдера, работает ли сервер. После перезагрузки подождите, пока система загрузится: до этого сервер не пускает.

Шаг 2. Включите проверку связи в config

Откройте файл config (где он и как его открыть) и добавьте в конец:

Host *
    ServerAliveInterval 15

Теперь, если от сервера 15 секунд ничего не приходит, ssh отправляет ему короткий запрос по защищённому каналу. Соединение не простаивает, и оборудование по дороге его не забывает. По умолчанию такие запросы выключены.

Если сервер не ответил на три запроса подряд — это значение ServerAliveCountMax по умолчанию, — ssh сам закроет сессию с сообщением Timeout, server … not responding. При интервале 15 секунд это примерно 45 секунд без ответа. Так окно не зависнет надолго.

Для одного подключения то же самое без config:

ssh -o ServerAliveInterval=15 root@ВАШ_IP

Шаг 3. Запускайте долгие команды в tmux

Если связь оборвалась посреди долгой команды — обновления системы, копирования, сборки, — команда на сервере тоже может прерваться. Чтобы этого не было, запускайте такие команды внутри программы tmux: она продолжает работать на сервере и после обрыва.

Если tmux на сервере нет, установите его:

sudo apt install tmux

Создайте сессию с именем work и работайте в ней как обычно:

tmux new -s work

После обрыва подключитесь к серверу снова и вернитесь в сессию — всё, что там было, на месте:

tmux attach -t work

Список сессий — tmux ls. Чтобы выйти из tmux, оставив команду работать, нажмите Ctrl+B, отпустите и нажмите D.

Если окно зависло и не реагирует

После обрыва окно терминала может не реагировать ни на какие клавиши. Нажмите Enter, потом ~ и . — ssh сразу закроет соединение. Раскладка клавиатуры при этом должна быть английской. Подробнее — в инструкции по SSH.

Как проверить

Подключитесь, оставьте окно на время, за которое раньше случался обрыв, и нажмите Enter. Если сервер ответил новой строкой приглашения, соединение живо. Убедиться, что ssh взял настройку из config, можно командой:

ssh -G root@ВАШ_IP

Она выводит все действующие настройки для этого подключения и ничего не подключает. Найдите строку serveraliveinterval 15.

Похожие ошибки

СообщениеЧем отличается
Connection timed outПодключиться не удаётся с самого начала: сервер не отвечает
kex_exchange_identificationСервер закрыл соединение сразу, до входа
Connection refusedНа порту никто не слушает — например, сервер ещё загружается

Источники

  • man ssh_config — ServerAliveInterval и ServerAliveCountMax, значения по умолчанию.
  • man ssh — раздел ESCAPE CHARACTERS: команда ~. и параметр -G.
  • man tmux для Ubuntu 24.04 — команды new, attach, ls и отключение от сессии.
  • Исходный код OpenSSH — тексты сообщений об обрыве соединения.

Сверено 9 октября 2026 года.

Что почитать дальше

Проверено и обновлено: 09.10.2026