SSH Linux с установленным клиентом/сервером OpenSSH; настройки зависят от дистрибутива

Как проверить журнал sshd при ошибке аутентификации

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

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

Журнал sshd помогает отличить неверный пароль, неподходящий ключ, отказ из-за AllowUsers и действия автоматической блокировки. Логи содержат имена пользователей и IP, поэтому собирать их нужно выборочно.

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

#Как распознать проблему и когда применять инструкции

Журнал sshd помогает отличить неверный пароль, неподходящий ключ, отказ из-за AllowUsers и действия автоматической блокировки. Логи содержат имена пользователей и IP, поэтому собирать их нужно выборочно. Уточните модель/сборку системы, наличие резервной копии и способ восстановить доступ, прежде чем применять действия.

#Причины и признаки

Возможная причинаКак узнатьЧто делать
Искали журнал не той службыDebian/Ubuntu часто используют ssh.service, другие дистрибутивы sshd.servicejournalctl -u sshd пустСмотрите соответствующий диагностический шаг ниже: проверяйте именно этот признак перед изменением настроек.
Не совпало времяЗапрос сделан после ротации или без правильного часового диапазонаНужная попытка не попала в выборкуСмотрите соответствующий диагностический шаг ниже: проверяйте именно этот признак перед изменением настроек.
Ограничения доступаОбычный пользователь не видит системный журналNo journal files were openedСмотрите соответствующий диагностический шаг ниже: проверяйте именно этот признак перед изменением настроек.

#Подробная проверка и безопасное решение

  1. Шаг 1. Уточните время и учётную запись тестаПопросите пользователя совершить одну разрешённую неудачную попытку входа и записать время с часовым поясом, имя и IP. Не просите присылать пароль, секретный ключ или коды подтверждения.
  1. Шаг 2. Узнайте имя службы SSHВ консоли сервера посмотрите фактическую единицу. В Debian/Ubuntu часто ssh, в Fedora/Rocky sshd; при контейнере сервис может не управляться systemd. Не выдавайте пустой journalctl за отсутствие входов.
  2. Дополнительная команда по теме
    Linux · Терминал (Bash)Команда
    Откройте терминал той машины, которая названа в шаге; команда содержит примерные имена/пути. Подставьте свои значения, сравните вывод с ожидаемым результатом и при ошибке выясните причину прежде, чем продолжать.
    systemctl list-units --all "ssh*" --no-pager
  1. Шаг 3. Откройте свежие записи для найденного имениВыполните чтение журнала с правами администратора. Параметр -u выбирает службу; --since ограничивает период; --no-pager выводит текст сразу. Замените ssh на фактическую единицу.
  2. Выполняется в терминале сервера с правами администратора; требуется разрешение владельца
    Linux · Терминал (Bash)КомандаНужен sudo
    Выполняется в терминале сервера с правами администратора; требуется разрешение владельца. Уточните фактические адреса и имена, прочитайте вывод и не выполняйте действия, если среда отличается от описанной.
    sudo journalctl -u ssh --since "15 minutes ago" --no-pager
  1. Шаг 4. Если службы в журнале нет, проверьте альтернативуВ системах с rsyslog записи аутентификации могут находиться в /var/log/auth.log или /var/log/secure. Проверяйте существование файла, не публикуйте весь файл в интернете.
  2. Выполняется в терминале сервера с правами администратора; требуется разрешение владельца
    Linux · Терминал (Bash)КомандаНужен sudo
    Выполняется в терминале сервера с правами администратора; требуется разрешение владельца. Уточните фактические адреса и имена, прочитайте вывод и не выполняйте действия, если среда отличается от описанной.
    sudo ls -l /var/log/auth.log /var/log/secure
  1. Шаг 5. Найдите только строки своей попыткиСопоставьте точное время, IP и пользователя. Сообщения Failed password, Invalid user и Failed publickey описывают разные причины; само по себе сообщение Connection closed не показывает причину.
  2. Выполняется в терминале сервера с правами администратора; требуется разрешение владельца
    Linux · Терминал (Bash)КомандаНужен sudo
    Выполняется в терминале сервера с правами администратора; требуется разрешение владельца. Уточните фактические адреса и имена, прочитайте вывод и не выполняйте действия, если среда отличается от описанной.
    sudo journalctl -u ssh --since "15 minutes ago" --no-pager | grep -Ei "failed|invalid|refused|authentication|disconnect"
  1. Шаг 6. Проверьте, не сработал ли внешний запретЕсли журнал sshd совсем не показывает соединения, проверьте порт, межсетевой экран и Fail2ban отдельно: пакеты могли не дойти до sshd. Не меняйте уровень LogLevel на DEBUG без оценки объёма и конфиденциальности данных.
  1. Шаг 7. Сохраните короткий обезличенный фрагментСкопируйте 5–15 строк вокруг конкретной ошибки, удалив ненужные IP и логины; не удаляйте в оригинале исходные журналы. После исправления повторите вход и проверьте отсутствие прежнего сообщения.

#Как проверить результат и что делать, если не помогло

Сообщение журнала точно соответствует времени и IP тестового входа; исправление подтверждается новой успешной попыткой при сохранённом текущем SSH-доступе. Если симптомы не исчезли, сохраните точное сообщение об ошибке и выполненные проверки; не повторяйте опасные процедуры циклически.

Так эту ошибку тоже называют

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

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