SSH Linux (OpenSSH)

SSH в Linux: SSH: журнал sshd показывает Connection closed before authentication

  • Обновлено
  • Чтение ≈ 3 минуты
  • Нужны права администратора

Краткий ответ

Запись sshd Connection closed ... before authentication сообщает, что TCP/SSH-соединение закрылось до успешной аутентификации. Это не всегда атака и не обязательно ошибка пароля: клиент мог отключиться сам.

В этой статье
  1. Что происходит и когда это важно
  2. Возможные причины и как их отличить
  3. Пошаговая диагностика и исправление
  4. Команды из инструкции с пояснениями
  5. Как проверить результат
  6. Если проблема не устранена

#Что происходит и когда это важно

В журнале сервера есть сообщения о закрытии до аутентификации с адресом клиента и портом; часть подключений при этом работает нормально.

#Возможные причины и как их отличить

Возможная причинаКак узнатьЧто делать
Автоматический сканерБот проверяет открытый порт и отключается, не предъявляя ключ.Много кратких подключений с разных адресов.Сопоставить частоту и защиту сервера, не блокировать случайно пользователей.
Сетевой разрыв клиентаКлиент или прокси закрыл соединение на этапе рукопожатия.Совпадает с нестабильной сетью/сном ноутбука.Проверить клиентский ssh -v и связь.
Несовместимость версий или алгоритмовКлиент прерывает подключение после начального обмена.В подробном журнале есть ошибки KEX/host key.Сверить версии и требуемые алгоритмы.
Лимиты до аутентификацииMaxStartups или защитные ограничения отсекают подключения.В журнале есть drops/throttling при большом числе соединений.Изучить значения и нагрузку, не отключая лимиты.

#Пошаговая диагностика и исправление

  1. Уточните частоту и адрес источникаОткройте серверную консоль. Посмотрите, это единичная запись или множество событий. Не публикуйте публично IP-адреса пользователей и соответствующие временные метки. Отдельно отметьте, совпадает ли строка с моментом неуспешного входа конкретного разрешённого пользователя.
  2. Получите журнал только SSH-сервераНа Debian/Ubuntu администратор выполняет sudo journalctl -u ssh -b -n 150 --no-pager, на других системах часто sudo journalctl -u sshd -b -n 150 --no-pager. Сравните время строки с жалобами реальных пользователей. Единичная запись без симптомов не требует ремонта.
  3. Проверьте службу и активные соединенияВыполните systemctl status ssh --no-pager или systemctl status sshd --no-pager по фактическому имени. Затем ss -tn sport = :22 при штатном порте 22: вывод показывает TCP-соединения на локальном SSH-порту; если настроен другой порт, замените номер. Команда ничего не блокирует.
  4. Попросите проблемного клиента включить диагностикуНа клиенте выполните ssh -v пользователь@сервер с настоящими данными. Сопоставьте этап обрыва и время на двух системах. Не просите присылать закрытые ключи, а из вывода удалите имена/адреса перед публичным размещением.
  5. Различите нормальные боты и лимитыЕсли подключение рабочих пользователей не нарушено, убедитесь, что действуют стандартные политики sshd, обновления безопасности и сетевые правила. Если есть MaxStartups/PerSourcePenalties, их значения проверяет администратор по конфигурации и журналу; не выключайте ограничения из-за одиночной строки.
  6. Исследуйте именно подтверждённую проблемуЕсли реальные пользователи постоянно теряют соединение, проверьте DNS/маршруты, алгоритмы SSH, ProxyJump и лимиты до аутентификации по отдельности. Не меняйте сразу все параметры и не делайте массовую блокировку подсетей.
  7. Повторно проверьте штатный доступИз доверенной сети выполните тестовый SSH-вход и завершите его exit. Убедитесь, что нормальный клиент проходит аутентификацию, а число неожиданных обрывов не растёт. Если тест не проходит, не изменяйте настройки защиты вслепую; сначала найдите точную причину в журнале.

#Команды из инструкции с пояснениями

Linux · Терминал (Bash)КомандаНужен sudo
Сервер Debian/Ubuntu: последние строки SSH; требует администратора.
sudo journalctl -u ssh -b -n 150 --no-pager
Linux · Терминал (Bash)Команда
Состояние сервера OpenSSH на Debian/Ubuntu.
systemctl status ssh --no-pager
Linux · Терминал (Bash)Команда
Просмотр TCP-соединений к локальному порту 22; измените порт при необходимости.
ss -tn sport = :22

#Как проверить результат

Легитимные SSH-сеансы проходят успешно; одиночные подключения, закрытые до аутентификации, трактуются по частоте, источнику и сопутствующим ошибкам.

#Если проблема не устранена

Если массовые отказы совпадают с активностью настоящих пользователей, сохраните небольшую обезличенную выборку журнала, версии OpenSSH, правила MaxStartups и передайте администратору.

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.