Где мои логи sshd?

58

Я не могу найти мои логи 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.

HXCaine
источник

Ответы:

51

Попробуйте эту команду, чтобы просмотреть журнал из systemctl:

journalctl -u sshd |tail -100
гладкий; плавный
источник
20
Кажется, это не работает, но journalctl _COMM=sshdработает.
wingedsubmariner
3
Ах да - systemctl, как обычно, полностью последовательный и предсказуемый.
g33kz0r
3
Вы можете использовать -fопцию, чтобы следить за журналом:journalctl -fu sshd
bzeaman
wingedsubmariner - я знаю, что прошло уже почти 4 года, но ... вы помните, в каком дистрибутиве вы были в то время? Я подозреваю, что файл модуля в вашем дистрибутиве назывался "openssh" или просто "ssh", а не "sshd". Суть проекта systemd в том, что они считают дистрибутивы своими пользователями, и дистрибутивы могут свободно использовать любые имена, которые они хотят, для файлов модулей (например, Debian вызывает веб-сервер apache, apache2а RedHat - его httpd).
Бобпаул
26

Лучший способ увидеть последнюю часть журнала:

journalctl -u sshd -n 100

Использование tailна выходе journalctlможет быть очень медленным. На машине, где я его пробовал, прошло 5 минут, а приведенная выше команда мгновенно возвращается.

eMBee
источник
3
И вы не потеряете цвет линий! Должно быть лучшим решением
IMO
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
Tombart
источник
У вас есть объяснение этого странного синтаксиса ( journalctl _COMM=sshd)?
Ортомала Локни
@OrtomalaLokni -uфильтрует поле метаданных, _SYSTEMD_UNITкоторое в Debian установлено в ssh.service. Все параметры, начинающиеся с подчеркивания, имеют доступ к метафайлам. Аналогичным образом вы можете фильтровать через _PIDили _TRANSPORT.
Томбарт
1

Посмотрите на вашу конфигурацию системного журнала. Most probalby /etc/syslog.confили /etc/rsyslog.conf Вы должны искать строки, authнапример, в моем конфиге:

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

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

b13n1u
источник
4
Ни один из этих файлов не существует. Я считаю, что эти файлы созданы syslog-ng, тогда как Arch заменил их на systemd
HXCaine
В Scientific Linux authpriv. * Указать authpriv.* /var/log/secureвнутри файла /etc/rsyslog.conf
Salem F