ฉันได้อ่านที่อื่นเพื่อขอให้ SSH เป็น "แก้ไข" เพื่อให้บัญชีที่ล็อคไม่สามารถเข้าสู่ระบบผ่าน SSH ได้ (ดู Debian bug 219377) คำขอนี้ถูกปฏิเสธเป็นแพทช์ "เพราะมันทำลายความคาดหวังบางอย่างจากผู้ใช้ [ใครคือ] เคยใช้ passwd -l เพียงล็อค passwd" (ดู Debian bug 389183) เช่นบางคนต้องการให้สามารถล็อคบัญชีจากการเข้าสู่ระบบด้วยรหัสผ่าน แต่ยังอนุญาตให้เข้าถึงคีย์ SSH ได้
PAM จะไม่ปฏิเสธการรับรองความถูกต้องของคีย์ SSH สำหรับบัญชีที่เพิ่งถูกล็อค (เช่นเนื่องจากการพยายามใช้รหัสผ่านไม่ถูกต้องเนื่องจากการรับรองความถูกต้องของคีย์ SSH ได้รับการออกแบบมาเพื่อไม่ให้ความสนใจใด ๆ กับฟิลด์รหัสผ่าน
ฉันเข้าใจว่ารายการแฮชรหัสผ่านถูกตรวจสอบโดยปริยายที่เวลา pam_authenicate () ไม่ใช่เวลา pam_acct_mgmt () pam_unix.so pam_sm_acct_mgmt () ไม่ตรวจสอบแฮชของรหัสผ่านเลยและ pam_authenticate () จะไม่ถูกเรียกในระหว่างการตรวจสอบสิทธิ์กุญแจสาธารณะ
หากคุณต้องการปิดใช้งานบัญชีจากส่วนกลางไม่ให้เข้าสู่ระบบจะมีวิธีแก้ไขอื่น ๆ ที่เป็นไปได้ ได้แก่ :
การเปลี่ยนล็อกอินเชลล์
(ใหม่) ย้ายไฟล์ authorized_keys ของพวกเขา
ตัวเลือกอื่นสำหรับการปฏิเสธการเข้าถึงอาจเป็นการใช้งาน DenyGroups หรือ AllowGroups ใน sshd_config (จากนั้นเพิ่มผู้ใช้ในกลุ่ม "sshdeny" หรือลบออกจากกลุ่ม "sshlogin" เพื่อปิดการใช้งานพวกเขาจากการเข้าสู่ระบบ) (อ่านที่นี่: https://help.ubuntu.com/8.04/serverguide/user-management .html )
จากhttp://web.archiveorange.com/archive/v/67CtqEoe5MhDqkDmUMuL
ฉันอ่าน: "ปัญหาคือ pam_unix ตรวจสอบเพียงวันหมดอายุของรายการเงาไม่ใช่เนื้อหาช่องแฮชรหัสผ่าน" หากเป็นจริงจะหมดอายุบัญชีแทนที่จะล็อคสิ่งที่คุณต้องการ?
คำตอบสำหรับคำถามของคุณอาจเป็น "ใช่ถ้าคุณปิดใช้งานที่อื่นนอกเหนือจากฟิลด์รหัสผ่าน"
account optional pam_echo.so file=/etc/redhat-release
ใน /etc/pam.d/sshd ทำให้เนื้อหาไฟล์ถูกพิมพ์ขณะใช้การลงชื่อเข้าใช้การรับรองความถูกต้องด้วยคีย์ (ลอง)