ฉันต้องการให้ sshd ทำการตรวจสอบกุญแจสาธารณะของผู้ใช้จากนั้นให้ใส่รหัสผ่านของพวกเขาแทนที่จะทำอย่างใดอย่างหนึ่ง เป็นไปได้ไหม
ฉันต้องการให้ sshd ทำการตรวจสอบกุญแจสาธารณะของผู้ใช้จากนั้นให้ใส่รหัสผ่านของพวกเขาแทนที่จะทำอย่างใดอย่างหนึ่ง เป็นไปได้ไหม
คำตอบ:
ไม่ช้า แต่มีบางแพทช์ลอยรอบที่ควรจะเพิ่มนี้
ในที่สุดนี้มีให้บริการตั้งแต่ OpenSSH 6.2 (วางจำหน่ายในเดือนมีนาคม 2013) โดยใช้AuthenticationMethods
ตัวเลือกการกำหนดค่า
ตัวอย่างเช่นคุณอาจเพิ่มบรรทัดต่อไปนี้sshd_config
เพื่อต้องการการตรวจสอบทั้งกุญแจสาธารณะและรหัสผ่าน:
AuthenticationMethods publickey,password
เมื่อเข้าสู่ระบบssh
และscp
จะทำการตรวจสอบคีย์สาธารณะก่อนแล้วจึงขอรหัสผ่าน:
$ ssh user@example.org
Authenticated with partial success.
user@example.org's password:
หากคุณมีรหัสผ่านในไฟล์กุญแจส่วนตัวของคุณแน่นอนคุณจะได้รับแจ้งก่อนว่า ตัวอย่างการใช้ PuTTY :
Using username "user".
Authenticating with public key "rsa-key-20131221-user"
Passphrase for key "rsa-key-20131221-user":
Further authentication required
user@example.org's password:
ตอนนี้ OpenSSH ใน RHEL / CentOS 6.3 รองรับคุณสมบัตินี้แม้ว่าฉันจะไม่สามารถหาได้กล่าวถึงในบันทึกประจำรุ่นของ OpenSSH จากบันทึกประจำรุ่น RHEL :
ตอนนี้คุณสามารถตั้งค่า SSH ให้ต้องการการรับรองความถูกต้องได้หลายวิธี (ก่อนหน้านี้ SSH อนุญาตการรับรองความถูกต้องหลายวิธีซึ่งจำเป็นต้องใช้การลงชื่อเข้าใช้ที่สำเร็จเพียงครั้งเดียวเท่านั้น); ตัวอย่างเช่นการล็อกอินเข้าสู่เครื่องที่เปิดใช้งาน SSH ต้องการทั้งรหัสผ่านและกุญแจสาธารณะที่จะป้อน
RequiredAuthentications1
และRequiredAuthentications2
ตัวเลือกที่สามารถกำหนดค่าใน/etc/ssh/sshd_config
ไฟล์เพื่อระบุ authentications ที่จำเป็นสำหรับการเข้าสู่ระบบที่ประสบความสำเร็จในตัวอย่าง.~]# echo "RequiredAuthentications2 publickey,password" >> /etc/ssh/sshd_config
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ
/etc/ssh/sshd_config
ตัวเลือกข้างต้นให้ดูที่sshd_config
หน้า man
มันเป็นไปได้ แต่ในประเภท kludgish และ จำกัด ก่อนอื่นคุณอนุญาตให้ใช้การตรวจสอบสิทธิ์กุญแจสาธารณะเท่านั้น จากนั้นในการ/etc/ssh/sshd_config
เพิ่มForceCommand
ที่รันสคริปต์ที่จะตรวจสอบรหัสผ่าน
สคริปต์จะหยุด SFTP เว้นแต่ว่าคุณจะตรวจสอบว่าคำสั่งนั้นเป็น sftp และอนุญาตให้ทำโดยไม่ต้องใช้รหัสผ่าน
ฉันไม่เคยลองทำเช่นนี้เพื่อให้ใครบางคนสามารถดูปัญหาเพิ่มเติมได้