Де мої журнали sshd?


57

Не можу знайти свої sshd-журнали у стандартних місцях.

Що я спробував:

  • Не в /var/log/auth.log
  • Не в /var/log/secure
  • Система шукала 'auth.log'і нічого не знайшла
  • Я налаштував /etc/ssh/sshd_configявно використовувати SyslogFacility AUTHта LogLevel INFOперезапустив sshd і досі не можу їх знайти.

Я використовую OpenSSH 6.5p1-2 в Arch Linux.

Відповіді:


51

Спробуйте цю команду для перегляду журналу з systemctl:

journalctl -u sshd |tail -100

20
Це, здається, не працює, але так journalctl _COMM=sshdі є.
крила підводного човна

3
Так, так - systemctl є повністю послідовним і передбачуваним, як завжди.
g33kz0r

3
Ви можете скористатися -fопцією для перегляду журналу:journalctl -fu sshd
bzeaman

wingedsubmariner - Я знаю, що минуло майже 4 роки, але ... ти пам’ятаєш, на якому дистрибутиві ти був у той час? Я підозрюю, що одиничний файл у вашому дистрибутиві називався "openssh" або просто "ssh", а не "sshd". Річ у проекті systemd полягає в тому, що вони вважають дистрибутивами своїх користувачів, а дистрибутив може вільно використовувати будь-які імена для одиничних файлів (наприклад, Debian викликає веб-сервер apache, apache2поки RedHat називає це httpd).
бобпаул

25

Кращий спосіб побачити останню частину журналу:

journalctl -u sshd -n 100

Використання tailна виході journalctlможе бути дуже повільним. На машині, де я спробував це, пройшло 5 хвилин, тоді як наведена вище команда миттєво повертається.


3
І ви не втрачаєте фарбування ліній! Має бути найкращим рішенням imo
kuzyn


7

Ви повинні мати можливість фільтрувати повідомлення за sshdдопомогою:

journalctl -u ssh

або (залежно від вашого розповсюдження)

journalctl -u sshd

які відображатимуть журнали у lessформаті стилю (можна шукати /, переходити через PgUp, PgDown тощо).

  • -e доводить вас до кінця журналів.
  • -uпараметри фільтрують через метаполе, _SYSTEMD_UNITяке встановлено (принаймні на Debian) ssh.service, таким чином sshd, не збігаються.
  • -f слідкує за журналами в режимі реального часу
  • -n 100відображає задану кількість рядків (корисно з -f)

Крім того, ви можете використовувати фільтрацію метаполів:

journalctl _COMM=sshd

Ви можете відображати весь запис журналу з усіма метаполями, експортуючи в JSON:

journalctl -u ssh -o json-pretty

це дасть вам щось на кшталт:

    ...
    "_PID" : "7373",
    "_COMM" : "sshd",
    "_EXE" : "/usr/sbin/sshd",
    "_SYSTEMD_CGROUP" : "/system.slice/ssh.service",
    "_SYSTEMD_UNIT" : "ssh.service",
    ...

Якщо вам цікаво, як відображати лише повідомлення ядра:

journalctl -k -f

Чи є у вас пояснення цього дивного синтаксису ( journalctl _COMM=sshd)?
Ортомала Локні

@OrtomalaLokni -uфільтрує через поле метаданих, на _SYSTEMD_UNITяке встановлено Debian ssh.service. Усі параметри, що починаються з підкреслення, мають доступ до метафілів. Аналогічним чином ви можете фільтрувати через _PIDабо _TRANSPORT.
Томбарт

1

Погляньте на вашу конфігурацію syslog. Більшість probalby /etc/syslog.confабо /etc/rsyslog.conf Ви повинні шукати рядки з, authнаприклад, у моїй конфігурації:

auth,authpriv.* /var/log/auth.log

*.*;auth,authpriv.none -/var/log/syslog


4
Жоден із цих файлів не існує. Я вважаю, що ці файли створені syslog-ng, тоді як Arch замінив цей на systemd
HXCaine

У науковому Linux authpriv. * Вказати на authpriv.* /var/log/secureвсередині файлу /etc/rsyslog.conf
Salem F
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.