อีกตัวเลือกหนึ่งคือคำตอบที่แตกต่างของ @Jagadish : ไปstrace
ยัง ssh daemon
มันมีข้อได้เปรียบที่สำคัญคือเราไม่จำเป็นต้องหยุด sshd สิ่งที่จะส่งผลให้เกิดการล็อคที่สมบูรณ์หากมีบางสิ่งไม่ดี
ก่อนอื่นเราจะพบ pid ของกระบวนการ sshd หลัก pstree -pa|less
ที่นี่เราสามารถดูได้โดยการดำเนินการ
|-sshd,633 -D <-- THIS IS WHAT WE WANT!
| `-sshd,21973
| `-sshd,21996
| `-bash,22000
| `-screen,638 -r
หลังจากรู้แล้วว่า pid คือ 633 เราทำได้strace
โดยติดตามลูก ๆ ของมัน:
strace -p 633 -s 4096 -f -o sux
ผลลัพธ์ที่ได้คือทุกสิ่งที่สิ่งนี้ sshd และกระบวนการลูกได้ทำไว้จะถูก strace-ed ลงในไฟล์ที่มีชื่อsux
ในโลคอลไดเร็กทอรี
จากนั้นสร้างปัญหาขึ้นอีกครั้ง
จะมีรายการบันทึกการโทรเคอร์เนลจำนวนมากซึ่งส่วนใหญ่ไม่สามารถเข้าใจได้ / ไม่เกี่ยวข้องสำหรับเรา แต่ไม่ใช่ทุกที่ ในกรณีของฉันสิ่งสำคัญคือ:
6834 sendto(4, "<38>Jan 15 18:49:21 sshd[6834]: User cica not allowed because account is locked\0", 84, MSG_NOSIGNAL, NULL, 0) = 84
มันเป็นเรื่องสำคัญที่ sshd พยายามที่จะเข้าสู่ระบบข้อความผู้ใช้ cica ไม่ได้รับอนุญาตเพราะบัญชีถูกล็อค - มันไม่สามารถเพียงเพราะการบันทึกไม่เพียงพอ verbose สำหรับที่ แต่เรารู้แล้วว่า pubkey ถูกปฏิเสธเพราะบัญชีถูกล็อค
ยังไม่ได้แก้ปัญหา - ตอนนี้เราจำเป็นต้อง google สิ่งที่หมายถึง "บัญชีที่ถูกล็อค" ในกรณีของ sshd อาจเป็นไปได้ว่ามีบางอย่างที่ไม่สำคัญ/etc/passwd
นัก/etc/shadow
เวทย์มนตร์ แต่สิ่งที่สำคัญทำ - ปัญหาไม่ได้เป็นเรื่องลึกลับ แต่เป็น debuggable / googlable ได้อย่างง่ายดาย