Di mana sshd log saya?

58

Saya tidak dapat menemukan log sshd saya di tempat standar.

Apa yang saya coba:

  • Tidak masuk /var/log/auth.log
  • Tidak masuk /var/log/secure
  • Apakah sistem mencari 'auth.log'dan tidak menemukan apa pun
  • Aku telah menetapkan /etc/ssh/sshd_configuntuk menggunakan eksplisit SyslogFacility AUTHdan LogLevel INFOdan restart sshd dan masih tidak dapat menemukan mereka.

Saya menggunakan OpenSSH 6.5p1-2 di Arch Linux.

HXCaine
sumber

Jawaban:

51

Coba perintah ini untuk melihat log dari systemctl:

journalctl -u sshd |tail -100
halus
sumber
20
Tampaknya ini tidak berhasil, tetapi journalctl _COMM=sshdternyata berhasil.
wingedsubmariner
3
Ah, ya - systemctl sepenuhnya konsisten dan dapat diprediksi seperti biasa.
g33kz0r
3
Anda dapat menggunakan -fopsi untuk mengikuti log:journalctl -fu sshd
bzeaman
wingedsubmariner - Saya tahu ini sudah hampir 4 tahun, tapi ... apakah Anda ingat distro yang Anda pakai saat itu? Saya menduga file unit pada distro Anda disebut "openssh" atau hanya "ssh" daripada "sshd". Masalahnya dengan proyek systemd adalah mereka menganggap distro sebagai penggunanya, dan distro bebas menggunakan nama apa pun yang mereka inginkan untuk file unit (seperti Debian menyebut server web apache apache2sementara RedHat menyebutnya httpd).
bobpaul
26

Cara yang lebih baik untuk melihat bagian terakhir dari log adalah:

journalctl -u sshd -n 100

Menggunakan tailpada output journalctlbisa sangat lambat. Butuh 5 menit pada mesin tempat saya mencobanya, sedangkan perintah di atas kembali secara instan.

eMBee
sumber
3
Dan Anda tidak kehilangan pewarnaan garis! Harus menjadi solusi teratas imo
kuzyn
7

Anda harus dapat memfilter pesan agar tidak sshdmenggunakan:

journalctl -u ssh

atau (tergantung pada distribusi Anda)

journalctl -u sshd

yang akan menampilkan log dalam lessformat gaya (Anda dapat mencari /, menavigasi melalui PgUp, PgDown, dll.).

  • -e membawa Anda ke akhir log.
  • -ufilter parameter melalui bidang meta _SYSTEMD_UNITyang (setidaknya pada Debian) diatur ke ssh.service, sehingga sshdtidak akan cocok.
  • -f mengikuti log secara real-time
  • -n 100menampilkan jumlah garis yang diberikan (berguna dengan -f)

Atau Anda dapat menggunakan pemfilteran meta-fields:

journalctl _COMM=sshd

Anda dapat menampilkan seluruh catatan jurnal dengan semua bidang meta dengan mengekspor ke JSON:

journalctl -u ssh -o json-pretty

itu akan memberi Anda sesuatu seperti:

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

Jika Anda bertanya-tanya bagaimana cara menampilkan hanya pesan-pesan kernel:

journalctl -k -f
Tombart
sumber
Apakah Anda memiliki penjelasan untuk sintaks aneh ini ( journalctl _COMM=sshd)?
Ortomala Lokni
@OrtomalaLokni -umenyaring melalui bidang metadata _SYSTEMD_UNITyang disetel ke Debian ssh.service. Semua param yang dimulai dengan garis bawah mengakses metafiels. Dengan cara yang sama Anda dapat memfilter melalui _PIDatau _TRANSPORT.
Tombart
1

Lihatlah konfigurasi syslog Anda. Paling mungkin /etc/syslog.confatau /etc/rsyslog.conf Anda harus mencari baris dengan authmisalnya di konfigurasi saya:

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

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

b13n1u
sumber
4
Tak satu pun dari file-file itu ada. Saya percaya file-file itu dibuat oleh syslog-ng sedangkan Arch telah menggantinya dengan systemd
HXCaine
Dalam Scientific Linux authpriv. * Arahkan ke authpriv.* /var/log/securebagian dalam file /etc/rsyslog.conf
Salem F