ฉันกำลังพยายามเปิดใช้งาน 2FA ด้วย ssh โดยใช้ libpam-google-authenticator ผู้ใช้บางรายไม่จำเป็นต้องเปิดใช้งานตัวตรวจสอบความถูกต้อง ทุกคนใช้กุญแจสาธารณะ ssh และไม่มีใครมีรหัสผ่าน ฉันใช้ Debian buster และฉันได้ลองใช้ libpam-google-authenticator จาก bullseye แล้ว
ปัญหาของฉันคือไม่ว่าฉันจะใส่อะไรในการกำหนดค่า PAM ผู้ใช้ที่ไม่ได้เปิดใช้งานตัวตรวจสอบความถูกต้องจะไม่เข้าสู่ระบบโดยตรง แต่จะถามรหัสผ่านเสมอ.
ฉันได้ติดตั้ง libpam-google-authenticator และกำหนดค่า /etc/ssh/sshd_config ด้วย:
เลขที่ยืนยันรหัสผ่าน
ChallengeResponseAuthentication ใช่
AuthenticationMethods คีย์สาธารณะ แป้นพิมพ์แบบโต้ตอบ
เลขที่ยืนยันรหัสผ่าน
หมายเลขใบอนุญาตว่างรหัสผ่าน
ฉันไม่สามารถกำหนดค่า PAM ที่ถูกต้องได้ ดังนั้นผู้ใช้ที่ไม่มีไฟล์ .google_authenticator จะยังคงเข้าสู่ระบบอยู่ ผู้ใช้จะได้รับแจ้งให้ป้อนรหัสผ่าน (พวกเขาไม่มี) หรือไม่ ขึ้นอยู่กับสิ่งที่ฉันใช้ อนุญาตให้เข้าได้เลย
ใน /etc/pam.d/sshd ฉันได้ลองแล้ว (เช่นนี้ พยายามรับ SSH ด้วยรหัสสาธารณะ (ไม่มีรหัสผ่าน) + ตัวตรวจสอบความถูกต้องของ Google ทำงานบน Ubuntu 14.04.1):
#@include การตรวจสอบสิทธิ์ทั่วไป
จำเป็นต้องมีการตรวจสอบสิทธิ์ pam_google_authenticator ดังนั้นดีบัก nullok
ในกรณีนี้ ผู้ใช้ที่ไม่มีการตั้งค่าตัวรับรองความถูกต้องจะถูกปฏิเสธด้วยการแก้ไขจุดบกพร่องต่อไปนี้
5 ส.ค. 15:11:18 น. <host> sshd(pam_google_authenticator)[746624]: debug: start of google_authenticator for "<user>"
05 ส.ค. 15:11:18 น. <host> sshd(pam_google_authenticator)[746624]: debug: end of google_authenticator for "<user>" ผลลัพธ์: ค่าที่ส่งคืนควรถูกละเว้นโดย PAM dispatch
05 ส.ค. 15:11:18 น. <host> sshd[746620]: ข้อผิดพลาด: PAM: การอนุญาตถูกปฏิเสธสำหรับ <user> จาก <IP>
เป็น pam_permit
จำเป็นต้องตั้งค่ากรณีทางเลือกหรือไม่
ฉันได้ลองชุดค่าผสมต่างๆ ต้องมีการตรวจสอบสิทธิ์
และ รับรองความถูกต้องเพียงพอ
ก่อนและหลัง @รวมการตรวจสอบสิทธิ์ทั่วไป
แต่ทั้งหมดนี้ส่งผลให้ผู้ใช้ที่ไม่มีตัวตรวจสอบความถูกต้องถูกถามรหัสผ่าน และบางครั้งผู้ใช้ที่มีตัวตรวจสอบความถูกต้องก็ถูกถามรหัสผ่านด้วย
ใครบ้างมีสูตรที่จะทำให้งานนี้?