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