บันทึก 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

คำตอบ:


50

ลองคำสั่งนี้เพื่อดูบันทึกจาก systemctl:

journalctl -u sshd |tail -100

20
ดูเหมือนจะใช้งานjournalctl _COMM=sshdไม่ได้แต่ทำไม่ได้
wingedsubmariner

3
อ่าใช่ - systemctl มีความสอดคล้องกันอย่างสมบูรณ์และสามารถคาดการณ์ได้ตามปกติ
g33kz0r

3
คุณสามารถใช้-fตัวเลือกเพื่อติดตามบันทึก:journalctl -fu sshd
bzeaman

wingedsubmariner - ฉันรู้ว่ามันเกือบ 4 ปีแล้ว แต่ ... คุณจำสิ่งที่คุณอยู่ในเวลานั้นได้หรือไม่? ฉันสงสัยว่าไฟล์หน่วยใน distro ของคุณถูกเรียกว่า "openssh" หรือเพียงแค่ "ssh" มากกว่า "sshd" สิ่งที่มีโครงการ systemd คือพวกเขาพิจารณา distros จะเป็นผู้ใช้ของพวกเขาและ distros มีอิสระที่จะใช้ชื่ออะไรก็ตามที่พวกเขาต้องการสำหรับไฟล์หน่วย (เช่น Debian เรียกเว็บเซิร์ฟเวอร์ของ Apache apache2ขณะ RedHat เรียกมันhttpd)
bobpaul

24

วิธีที่ดีกว่าในการดูส่วนสุดท้ายของบันทึกคือ:

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หรือไม่?
Ortomala Lokni

@OrtomalaLokni -uกรองผ่านช่องข้อมูลเมตา_SYSTEMD_UNITซึ่งเป็นใน Debian ssh.serviceชุด พารามิเตอร์ทั้งหมดที่เริ่มต้นด้วยเครื่องหมายขีดล่างกำลังเข้าถึงเมตาฟีล ในลักษณะที่คล้ายคลึงคุณสามารถกรองผ่านหรือ_PID _TRANSPORT
Tombart

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

ใน Scientific Linux authpriv. * ชี้ไปauthpriv.* /var/log/secureที่ไฟล์ /etc/rsyslog.conf
Salem F
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.