Wo sind meine SSHD-Protokolle?

57

Ich kann meine sshd-Protokolle an den Standardorten nicht finden.

Was ich versucht habe:

  • Nicht in /var/log/auth.log
  • Nicht in /var/log/secure
  • Hat ein System gesucht 'auth.log'und nichts gefunden
  • Ich habe sshd /etc/ssh/sshd_configexplizit verwendet SyslogFacility AUTHund LogLevel INFOneu gestartet und kann sie immer noch nicht finden.

Ich verwende OpenSSH 6.5p1-2 unter Arch Linux.

HXCaine
quelle

Antworten:

51

Versuchen Sie diesen Befehl, um das Protokoll von systemctl anzuzeigen:

journalctl -u sshd |tail -100
glatt
quelle
20
Das scheint nicht zu funktionieren, journalctl _COMM=sshdtut es aber .
Wingedsubmariner
3
Ah, ja - das System ist wie immer vollständig konsistent und vorhersehbar.
g33kz0r
3
Sie können die -fOption verwenden, um das Protokoll zu verfolgen:journalctl -fu sshd
bzeaman
wingedsubmariner - Ich weiß, es sind fast 4 Jahre vergangen, aber ... erinnerst du dich, in welcher Distribution du damals warst? Ich vermute, die Unit-Datei auf Ihrer Distribution hieß "openssh" oder nur "ssh" und nicht "sshd". Die Sache mit dem systemd-Projekt ist, dass sie Distributionen als ihre Benutzer betrachten und Distributionen frei sind, beliebige Namen für Unit-Dateien zu verwenden (wie Debian den Webserver von Apache aufruft, apache2während RedHat ihn aufruft httpd).
Bobpaul
25

Ein besserer Weg, um den letzten Teil des Protokolls zu sehen, ist:

journalctl -u sshd -n 100

Die Verwendung tailam Ausgang von journalctlkann sehr langsam sein. Auf einem Computer, auf dem ich es ausprobiert habe, dauerte es 5 Minuten, während der obige Befehl sofort zurückgegeben wird.

eMBee
quelle
3
Und Sie verlieren nicht die Linienfärbung! Sollte Top - Lösung sein imo
kuzyn
7

Sie sollten in der Lage sein, Nachrichten sshdanhand folgender Kriterien zu filtern :

journalctl -u ssh

oder (abhängig von Ihrer Distribution)

journalctl -u sshd

Die Protokolle werden in einem lessStilformat /angezeigt (Sie können suchen , über PgUp, PgDown usw. navigieren).

  • -e bringt Sie zum Ende der Protokolle.
  • -uParameterfilter durch Metafeld, _SYSTEMD_UNITdas (zumindest unter Debian) auf gesetzt ist ssh.service, sshdstimmen daher nicht überein.
  • -f Verfolgt Logs in Echtzeit
  • -n 100Zeigt die angegebene Anzahl von Zeilen an (nützlich bei -f)

Alternativ können Sie die Metafeldfilterung verwenden:

journalctl _COMM=sshd

Sie können den gesamten Journaleintrag mit allen Metafeldern anzeigen, indem Sie nach JSON exportieren:

journalctl -u ssh -o json-pretty

das würde dir etwas geben wie:

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

Falls Sie sich fragen, wie Sie nur Kernelmeldungen anzeigen können:

journalctl -k -f
Tombart
quelle
Haben Sie eine Erklärung für diese seltsame Syntax ( journalctl _COMM=sshd)?
Ortomala Lokni
@OrtomalaLokni -ufiltert durch das Metadatenfeld _SYSTEMD_UNIT, auf das Debian eingestellt ist ssh.service. Alle Parameter, die mit einem Unterstrich beginnen, greifen auf Metafelder zu. In ähnlicher Weise können Sie über _PIDoder filtern _TRANSPORT.
Tombart
1

Sehen Sie sich Ihre Syslog-Konfiguration an. Meistens probalby /etc/syslog.confoder /etc/rsyslog.conf Du solltest nach Zeilen mit authzum Beispiel in meiner Konfig suchen :

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

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

b13n1u
quelle
4
Keine dieser Dateien existiert. Ich glaube, diese Dateien wurden von syslog-ng erstellt, während Arch diese durch systemd
HXCaine vom
In Scientific Linux authpriv. * Zeigen Sie authpriv.* /var/log/securein die Datei /etc/rsyslog.conf
Salem F