Score:0

SSHD คอยถามรหัสผ่านผู้ใช้ แม้ว่าจะถูกกำหนดค่าด้วยพับลิกคีย์ คีย์บอร์ด-อินเตอร์แอคทีฟ

ธง us

ฉันกำลังพยายามกำหนดค่า sshd บนอินสแตนซ์ VPS และต้องการให้แม่มดตรวจสอบสิทธิ์คือ publickey,keyboard-interactive (คีย์สาธารณะและแป้นพิมพ์แบบโต้ตอบ)

ปัญหาคือเซิร์ฟเวอร์ขอรหัสผ่านผู้ใช้เซิร์ฟเวอร์ในการเข้าสู่ระบบหลังจากส่งและยอมรับรหัสสาธารณะแล้ว ควรขอรหัส 2FA เท่านั้น ฉันสามารถเข้าสู่ระบบโดยใช้คีย์สาธารณะ รหัสผ่านผู้ใช้เซิร์ฟเวอร์ และรหัส 2FA

ฉันมีการตั้งค่าที่คล้ายกันอีกสองแบบซึ่งใช้งานได้ดี แต่ฉันจำได้ว่ามีปัญหาในการตั้งค่า เช่น การใช้มนต์ดำในไฟล์การกำหนดค่าที่แปลกประหลาด

ฉันใช้เวลานับไม่ถ้วนเพื่อพยายามกำหนดค่า sshd ด้วยวิธีนี้บนโฮสต์อื่น และตอนนี้ดูเหมือนจะไม่สำเร็จ

ฉันยังพยายามเปรียบเทียบบันทึกของไคลเอนต์และเซิร์ฟเวอร์ในการตั้งค่าการทำงานและอันนี้ แต่บันทึกเหมือนกัน! (ยกเว้น IP พอร์ต และลายนิ้วมือ)

บันทึกไคลเอนต์ SSH : https://pastebin.com/P1xsKTwm

เซิร์ฟเวอร์ /etc/ssh/sshd_config : https://pastebin.com/qSH7GAmR

/etc/pam.d/sshd ของเซิร์ฟเวอร์ : https://pastebin.com/YBKY91Rk

(sshd ถูกรีสตาร์ทโดยใช้ sudo systemctl รีสตาร์ท sshd.service)

แก้ไข: การโต้ตอบด้วยแป้นพิมพ์ไม่ได้มีไว้สำหรับ 2FA เท่านั้น

อ่านความคิดเห็นในคำตอบของ mforsetti ด้านล่าง ฉันไม่เข้าใจว่าการโต้ตอบด้วยแป้นพิมพ์ไม่ได้มีไว้สำหรับ 2FA เท่านั้น

เคล็ดลับคือการแก้ไข /etc/pam.d/sshd ไฟล์เพื่อปิดใช้งานการตรวจสอบรหัสผ่าน (อธิบายไว้ในโพสต์ของ mforsetti และความคิดเห็นด้านล่าง)

Score:1
ธง tz

ปัญหาคือเซิร์ฟเวอร์ขอรหัสผ่านผู้ใช้เซิร์ฟเวอร์ในการเข้าสู่ระบบหลังจากส่งและยอมรับรหัสสาธารณะแล้ว

คุณขอมาโดยเฉพาะ

AuthenticationMethods คีย์สาธารณะ แป้นพิมพ์แบบโต้ตอบ

อ้าง sshd_config คู่มือ,

วิธีการรับรองความถูกต้อง

ระบุวิธีการรับรองความถูกต้องที่ต้องดำเนินการให้สำเร็จเพื่อให้ผู้ใช้ได้รับสิทธิ์ในการเข้าถึง ... โดยสตริงเดียว ใดๆ เพื่อระบุพฤติกรรมเริ่มต้นของการยอมรับวิธีการตรวจสอบสิทธิ์แบบเดี่ยวใดๆ ...

... ตัวอย่างเช่น "publickey,password publickey,keyboard-interactive" จะกำหนดให้ผู้ใช้ตรวจสอบสิทธิ์คีย์สาธารณะให้เสร็จสมบูรณ์ ตามด้วยรหัสผ่านหรือการตรวจสอบสิทธิ์ผ่านแป้นพิมพ์ ...

ดังนั้นการเพิ่ม AuthenticationMethods คีย์สาธารณะ แป้นพิมพ์แบบโต้ตอบ ของคุณ sshd_configหมายความว่าคุณคาดว่าจะมี กุญแจสาธารณะ การตรวจสอบสิทธิ์เสร็จสิ้นก่อน จากนั้น แป้นพิมพ์แบบโต้ตอบ การตรวจสอบสิทธิ์เสร็จสิ้นต่อไป

หากคุณคาดว่าจะยืนยันตัวตนด้วยเท่านั้น กุญแจสาธารณะ, อาจมีการเปลี่ยนแปลง

AuthenticationMethods คีย์สาธารณะ แป้นพิมพ์แบบโต้ตอบ

ถึง

พับลิกคีย์วิธีการรับรองความถูกต้อง

หรือ หากคุณเปิดใช้งานวิธีการรับรองความถูกต้องอื่นๆ และคาดว่าวิธีการรับรองความถูกต้องใดๆ ที่สำเร็จเพียงวิธีเดียวจะใช้ได้ คุณอาจใช้

AuthenticationMethods ใดๆ

ฉันต้องการรับรองความถูกต้องทั้งด้วยรหัสสาธารณะและ 2FA

คุณอาจต้องการปิดการใช้งาน รับรองความถูกต้องร่วมกัน จากการกำหนดค่า PAM เช่นเดียวกับการแจกแจง Linux/Unix ส่วนใหญ่ รับรองความถูกต้องร่วมกัน รวมถึง pam-unix.so หรือ pam-unix2.so ซึ่งต้องใช้รหัสผ่านบัญชี

us flag
ขอบคุณสำหรับคำตอบ! :D บางทีฉันไม่ชัดเจนข้างต้น ฉันต้องการตรวจสอบทั้งด้วยรหัสสาธารณะและ 2FA แต่ไม่ใช่รหัสผ่านผู้ใช้เซิร์ฟเวอร์ สิ่งที่ฉันไม่เข้าใจคือคีย์บอร์ดโต้ตอบขอรหัสผ่านของผู้ใช้เซิร์ฟเวอร์ ไม่น่าจะใช่ มันเป็นแค่ 2FA?
mforsetti avatar
tz flag
`keyboard-interactive` เป็นปุ่ม catch-all สำหรับการโต้ตอบด้วยคีย์บอร์ด รวมถึงรหัสผ่าน, PAM, Kerberos ฯลฯ ลองใช้ `AuthenticationMethods publickey,keyboard-interactive:pam` หากคุณใช้ PAM เพื่อกำหนดค่า 2FA ของคุณ .
mforsetti avatar
tz flag
คุณได้แสดงความคิดเห็น `@include Common-auth` ใน `/etc/pam.d/sshd` หรือไม่
us flag
โอ้... ฉันคิดว่าการโต้ตอบด้วยแป้นพิมพ์มีไว้สำหรับ 2FA เท่านั้น... การแสดงความคิดเห็นในบรรทัดนี้เป็นสิ่งที่ฉันต้องการทำจริงๆ ขอบคุณมาก!
mforsetti avatar
tz flag
เพิ่มข้อมูลเกี่ยวกับ `common-auth` ในคำตอบ
us flag
ยอดเยี่ยม! :D ขอบคุณมาก!

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา