Connection closed by authenticating user: вход обрывается
Эта запись означает, что клиент сам закрыл соединение во время проверки подлинности. Причина бывает и безобидной — клиент перебрал ключи и не нашёл подходящего, — и тревожной: так выглядит перебор паролей. Различить их можно по частоте и источнику.
Вероятные причины
По порядку: сверху то, что встречается чаще.
-
Клиент перебирает ключи и не находит подходящего
Клиент предлагает ключи по порядку. Не найдя принятого, он закрывает соединение.
-
Идёт перебор паролей
Множество таких записей с чужих адресов за короткое время означает перебор, а не проблему клиента.
-
Вход ограничен по адресу или пользователю
Правила доступа могут отклонять клиента после проверки подлинности. Клиент видит обрыв.
Диагностика
Команды идут в том порядке, в котором их стоит выполнять: каждая следующая проверяет то, что осталось после предыдущей.
Обрывы на этапе проверки подлинности за сутки.
journalctl -u ssh -u sshd --since today --no-pager 2>/dev/null | grep -i 'authenticating user' | tail -20Действующие настройки проверки подлинности.
sudo sshd -T 2>/dev/null | grep -iE "maxauthtries|passwordauthentication|allowusers"Сколько было неудачных попыток по паролю.
journalctl -u ssh -u sshd --since today --no-pager 2>/dev/null | grep -c 'Failed password'Решение
Решение своё для каждой причины. Сначала определите, какая из них ваша, — иначе правки наложатся друг на друга.
- Почему происходит
- Клиент предлагает ключи по порядку. Не найдя принятого, он закрывает соединение.
- Как проверить
-
Посмотрите записи и число попыток с этого адреса.
journalctl -u ssh -u sshd --since "1 hour ago" --no-pager 2>/dev/null | grep -i "Connection closed by authenticating" | tail -5
- Как исправить
- Укажите клиенту нужный ключ явно в его настройках. Предложение всех ключей подряд ещё и упирается в предел числа попыток.
- Почему происходит
- Множество таких записей с чужих адресов за короткое время означает перебор, а не проблему клиента.
- Как проверить
-
Посмотрите частоту и адреса.
journalctl -u ssh -u sshd --since today --no-pager 2>/dev/null | grep -i 'authenticating user' | grep -oE 'from [0-9.]+' | sort | uniq -c | sort -rn | head
- Как исправить
- Настройте блокировку по числу неудачных попыток и отключите вход по паролю. Перенос порта помогает лишь от простых сканеров.
- Почему происходит
- Правила доступа могут отклонять клиента после проверки подлинности. Клиент видит обрыв.
- Как проверить
-
Посмотрите ограничения доступа.
sudo sshd -T 2>/dev/null | grep -iE "allowusers|allowgroups|denyusers|permitrootlogin" | head
- Как исправить
- Приведите правила доступа в соответствие с тем, кому вход нужен. Проверять итоговые настройки надо командой вывода действующей конфигурации, а не чтением файла.
Пример вывода
Перебор паролей с одного адреса. Пример показательный: он собран на тестовой машине специально для этой страницы, а не взят из чужого журнала.
sshd[11200]: Connection closed by authenticating user root 203.0.113.44 port 51422 [preauth]
sshd[11203]: Failed password for root from 203.0.113.44 port 51430 ssh2
sshd[11205]: Connection closed by authenticating user admin 203.0.113.44 port 51438 [preauth]
Связанные ошибки
- sshd: Too many authentication failures Соединение обрывается до ввода пароля: клиент перебрал все ключи из агента. Как ограничить набор ключей.
- sshd: отказ в подключении из-за MaxStartups Часть подключений отклоняется под нагрузкой: предел незавершённых аутентификаций. Как считать значение.
- fail2ban: Failed during configuration и отсутствующий файл журнала fail2ban не запускается: в правиле указан файл журнала, которого нет. Переход на чтение журнала systemd.
- kex_exchange_identification: Connection closed by remote host Соединение по ssh обрывается до запроса пароля: обрыв на обмене версиями. Разбор со стороны клиента и сервера.
- System is booting up, unprivileged users are not permitted to log in yet Вход отклоняется на время загрузки: обычные пользователи не пускаются, пока система не готова.
- Брандмауэр не загрузился при старте: ошибка в наборе правил Машина осталась без правил фильтрации: набор не загрузился из-за ошибки, отсутствующего объекта или порядка запуска.
- Вход по доменной учётной записи не проходит: служба в автономном режиме Доменные пользователи не могут войти: служба не видит каталог и перешла в автономный режим.
- Обновление микрокода процессора не загружено В журнале ядра нет записи о загрузке микрокода: пакет не установлен или образ начальной загрузки не обновлён.
Где встречается чаще всего
Источники
-
sshd_config(5)
Настройки проверки подлинности и ограничения доступа. -
Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)
Воспроизведено клиентом с набором неподходящих ключей и наблюдением перебора на открытом сервере.