Skip to content

Шпаргалка: Управление логами SSH


1. Использование journalctl (Рекомендуемый метод)

Утилита journalctl собирает логи напрямую от systemd. Это самый гибкий и мощный способ отслеживать работу службы ssh.

  • Показать все логи службы SSH: sudo journalctl -u ssh
  • Следить за логами в реальном времени (режим "хвоста"): sudo journalctl -u ssh -f
  • Показать только последние 50 записей: sudo journalctl -u ssh -n 50
  • Показать логи только за сегодняшний день: sudo journalctl -u ssh --since today
  • Показать логи за последний час: sudo journalctl -u ssh --since "1 hour ago"

2. Классический просмотр через auth.log

В Debian системные события аутентификации традиционно пишутся в файл /var/log/auth.log. Этот метод удобен для быстрого парсинга текста стандартными утилитами.

  • Отслеживать новые подключения в реальном времени: sudo tail -f /var/log/auth.log
  • Вывести все события, связанные только с SSH: sudo cat /var/log/auth.log | grep sshd
  • Искать события в старых заархивированных логах (ротация): sudo zgrep sshd /var/log/auth.log.*.gz

3. Быстрый поиск инцидентов безопасности

Таблица готовых связок команд для расследования попыток несанкционированного доступа.

Цель поискаКоманда
Успешные входы в системуsudo grep "Accepted" /var/log/auth.log
Попытки входа с неверным паролемsudo grep "Failed password" /var/log/auth.log
Попытки входа под несуществующим логиномsudo grep "Invalid user" /var/log/auth.log
Разрывы соединенийsudo grep "Disconnected from" /var/log/auth.log

Для отображения логов SSH в реальном времени используйте флаг -f (follow):

bash
sudo journalctl -u ssh -f

Это будет показывать новые записи по мере их появления (аналог tail -f).


Другие полезные варианты:

Показать последние N строк и обновлять:

bash
sudo journalctl -u ssh -f -n 50

С фильтром по приоритету (например, только ошибки):

bash
sudo journalctl -u ssh -f -p err

С выводом в UTC или локальном времени:

bash
sudo journalctl -u ssh -f --utc

С подробным выводом (включая PID и пользователя):

bash
sudo journalctl -u ssh -f -o verbose

С фильтром по конкретному сообщению (например, по IP):

bash
sudo journalctl -u ssh -f | grep "192.168.1."

Если нужно выйти из режима реального времени:

Нажмите Ctrl + C.


Дополнительно: посмотреть логи за последние X минут

bash
sudo journalctl -u ssh --since "10 minutes ago"

Или за конкретный промежуток:

bash
sudo journalctl -u ssh --since "2026-08-10 10:00:00" --until "2026-08-10 12:00:00"

Если логов нет — проверьте имя сервиса

Иногда служба называется sshd, а не ssh:

bash
sudo journalctl -u sshd -f

Или посмотрите точное имя:

bash
systemctl list-units | grep ssh