Ошибки

Ошибка SSH kex_exchange_identification: Connection closed by remote host

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

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

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

  1. Если перед этим вы несколько раз ошиблись с паролем или ключом, подождите 10 минут и подключитесь снова — шаг 2.
  2. Если ошибок не было, повторите подключение через минуту — шаг 3.
  3. Если указываете порт через -p, проверьте номер — шаг 4.
  4. Если не помогло, посмотрите журнал через консоль — шаг 5.

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

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

В зависимости от того, в какой момент оборвалось соединение, ssh пишет одно из:

kex_exchange_identification: Connection closed by remote host
Connection closed by 203.0.113.10 port 22
kex_exchange_identification: read: Connection reset by peer
Connection reset by 203.0.113.10 port 22
banner exchange: Connection to 203.0.113.10 port 22: Broken pipe

Новые версии ssh в первом случае показывают только нижнюю строку, Connection closed by. Смысл у всех вариантов один: сервер ответил на подключение, но закрыл его в самом начале, до обмена версиями. Пароль и ключ здесь ни при чём — до них дело не дошло.

Это отличает ошибку от Connection refused, где на порту никто не слушает, и от Connection timed out, где ответа нет вовсе.

Шаг 1. Посмотрите подробности

Запустите ssh с ключом -v — он покажет, что успел прислать сервер:

ssh -v root@ВАШ_IP

Ищите строки со словами banner line:

Что в выводеЧто значит
banner line 0: Not allowed at this timeСервер сам отказал в подключении — шаги 2 и 3
banner line 0: HTTP/1.1 400 Bad RequestНа этом порту веб-сервер, а не SSH — шаг 4
banner line contains invalid characters, а ниже invalid formatНа порту другая программа, не SSH — шаг 4
строк banner line нетСервер закрыл соединение молча — шаги 2, 3 и 5

Шаг 2. Если перед этим не получалось войти

В OpenSSH с версии 9.8 сервер наказывает адреса, с которых не получается войти. Каждое подключение с неверным паролем, чужим ключом или несуществующим пользователем добавляет несколько секунд «штрафа». Когда штраф накопится, сервер на время перестаёт принимать подключения с этого адреса: ответ — Not allowed at this time и обрыв. При повторных ошибках срок растёт, но при настройках по умолчанию не больше 10 минут.

Что делать: подождите 10 минут и подключитесь один раз, с правильными данными. Не повторяйте подключение каждые несколько секунд — неудачные попытки продлевают блокировку. Если не помните пароль, задайте новый через консоль в панели провайдера — она работает без SSH.

Шаг 3. Если на сервер ломятся боты

На любой сервер с открытым SSH постоянно заходят боты, которые подбирают пароли. Сервер ограничивает число подключений, которые ещё не вошли: по умолчанию, когда таких 10, новые отклоняются с вероятностью 30%, а при 100 — все. Ваше подключение может попасть под это ограничение, хотя вы ни в чём не ошиблись.

Что делать: подключитесь ещё раз через минуту. Если обрыв повторяется постоянно, загляните в журнал (шаг 5): там будет видно, сколько подключений сервер отклоняет. От ботов защищает вход только по ключу — шаг 4 инструкции по SSH.

Шаг 4. Проверьте порт

Если в команде есть -p, ssh стучится в указанный порт. Когда там работает не SSH, а, например, веб-сервер, он не понимает ssh и закрывает соединение. Порт SSH по умолчанию — 22; если его не меняли, -p не нужен:

ssh root@ВАШ_IP

Если порт меняли, укажите тот, что прописан в настройках SSH на сервере:

ssh -p 2222 root@ВАШ_IP

Вместо 2222 — ваш номер. Узнать его можно через консоль сервера, командой sudo grep -ri "^port" /etc/ssh/sshd_config /etc/ssh/sshd_config.d/. Если она ничего не вывела, порт стандартный — 22.

Шаг 5. Посмотрите журнал на сервере

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

sudo journalctl -u ssh -n 50

Свежие строки — внизу. Отказы сервера выглядят так:

Строка в журналеЧто значит
drop connection #0 from [198.51.100.7]:51234 on [203.0.113.10]:22 penalty: failed authenticationАдрес временно заблокирован после неудачных входов — шаг 2
drop connection #10 from [198.51.100.7]:51234 on [203.0.113.10]:22 MaxStartupsСлишком много подключений, которые ещё не вошли, — шаг 3

Вместо 198.51.100.7 будет IP вашего компьютера или чужие адреса. Если строк drop connection с вашим адресом нет, а подключение всё равно обрывается, напишите в поддержку провайдера: приложите время попытки и вывод ssh -v.

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

ssh root@ВАШ_IP

Если всё в порядке, ssh задаст вопрос о ключе сервера или спросит пароль — значит, соединение больше не обрывается.

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

СообщениеЧем отличается
Connection refusedНа порту никто не слушает
Connection timed outСервер не отвечает вовсе
Too many authentication failuresСоединение оборвалось позже — на переборе ключей
Broken pipeОбрыв уже после входа, во время работы

Источники

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

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

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