ใบสั่งการรับรองความถูกต้องด้วย SSH


22

เมื่อฉันเข้าสู่ระบบผ่าน ssh ด้วย-vฉันเห็นว่า ssh กำลังตรวจสอบด้วยวิธีต่อไปนี้

debug1: Authentications that can continue: publickey,gssapi-with-mic,password,hostbased

ฉันต้องการเปลี่ยนคำสั่งซื้อ ... ความคิดใด ๆ ได้อย่างไร

ปัญหาใหญ่ของฉันคือผู้ใช้ที่มีบัญชีที่ถูกล็อคยังสามารถเข้าสู่ระบบผ่านกุญแจสาธารณะ ฉันพบว่าฉันสามารถเพิ่มผู้ใช้ในกลุ่ม "ssh-locked" เพิ่มปฏิเสธกลุ่มนั้นจาก sshing แต่ฉันยังคงสงสัยว่ามีวิธีที่จะบอก ssh'd: โปรดตรวจสอบรหัสผ่านก่อนคีย์ ...


1
ฉันคิดว่าคุณกำลังเข้าใกล้สิ่งนี้ในทางที่ผิด - คีย์นั้นปลอดภัยกว่ารหัสผ่าน (ปกติ) หากบัญชีถูกล็อคคุณจะต้องแจ้งให้ sshd daemon ไม่ให้ผู้ใช้เข้าสู่ระบบโดยไม่คำนึงถึงวิธีการตรวจสอบสิทธิ์
EightBitTony

อย่างที่ฉันพูดฉันพบวิธีแก้ปัญหาผ่าน DenyGroups ฉันขอมันเพื่อประโยชน์
Oz123

คำตอบ:


31

เซิร์ฟเวอร์ ssh ตัดสินใจว่าจะอนุญาตให้ใช้ตัวเลือกการตรวจสอบความถูกต้องใดบ้างไคลเอ็นต์ ssh สามารถกำหนดค่าให้ตัดสินใจว่าจะลองใช้วิธีใด

ไคลเอ็นต์ ssh ใช้PreferredAuthenticationsตัวเลือกในไฟล์ ssh config เพื่อพิจารณาสิ่งนี้

จากman ssh_config( ดูออนไลน์ได้ที่นี่ ):

PreferredAuthentications
             Specifies the order in which the client should try protocol 2 authentication methods.  This allows a client to prefer
             one method (e.g. keyboard-interactive) over another method (e.g. password).  The default is:

                   gssapi-with-mic,hostbased,publickey,
                   keyboard-interactive,password

ฉันไม่เชื่อว่ามันเป็นไปได้โดยไม่ต้องเล่นกับแหล่งที่มาเพื่อบอกเซิร์ฟเวอร์ OpenSSH ให้ชอบคำสั่งซื้อบางอย่าง - ถ้าคุณคิดเกี่ยวกับมันก็ไม่สมเหตุสมผลเลย


หากคุณใช้ Git Bash สำหรับ Windows ให้บันทึกการตั้งค่า ssh ของคุณไว้~/.ssh/config
Spencer Williams

การสั่งซื้อสามารถทำให้รู้สึกว่าวิธีการหนึ่งขึ้นอยู่กับก่อนหน้านี้ ตัวอย่างเช่น 2FA ภายใต้แป้นพิมพ์แบบโต้ตอบอาจขึ้นอยู่กับผู้ใช้ที่มีรหัสผ่านที่ถูกต้องเป็นครั้งแรก
steveayre

คุณสามารถโพสต์แหล่งที่คุณคัดลอกข้อมูล PreferredAuthentications ด้านบนได้หรือไม่ ผมไม่เห็นมันในman sshหรือในหรือใน/etc/ssh/ssh_config /etc/ssh/sshd_configคุณได้รับข้อมูลนี้ที่ไหน
Gabriel Staples

พบมัน! man ssh_configมันอยู่ใน ฉันส่งการแก้ไขเพื่อตรวจทานเพื่ออัปเดตคำตอบของคุณเพื่อให้มีแหล่งที่มานี้ โปรดอ้างอิงแหล่งที่มาในครั้งต่อไป! ขอบคุณมาก.
Gabriel Staples

18

เพิ่มสิ่งนี้:

PreferredAuthentications keyboard-interactive,password,publickey,hostbased,gssapi-with-mic

... ถึงฉัน/etc/ssh/ssh_configช่วยฉันแก้ปัญหานี้และช่วยประหยัดเวลาได้เช่นกัน!

คุณสามารถตรวจสอบว่ามันทำงานได้โดยใช้ssh -v user@hostคำสั่งในการเชื่อมต่อซึ่ง-vหมายถึง "verbose"


2
ตรวจสอบให้แน่ใจว่าคุณกำลังเพิ่มนี้ไปยังแฟ้มที่ถูกต้องและไม่ได้ssh_config sshd_configหลังจะทำให้ ssh ของคุณล้มเหลว!
ส้ม 13

0

เพิ่มไปยังอีกสองคำตอบแล้วกล่าวถึงPreferredAuthenticationsตัวเลือกที่ฉันต้องการที่จะเพิ่มคุณไม่จำเป็นต้องแก้ไขไฟล์ใด ๆ เพื่อตั้งค่านี้ถ้าคุณไม่ต้องการ คุณสามารถตั้งค่าได้ที่บรรทัดคำสั่งสำหรับการโทรแต่ละรายการsshด้วย-oตัวเลือกดังนี้:

ssh -o PreferredAuthentications=publickey,gssapi-with-mic,hostbased,keyboard-interactive,password user@hostname

อ้างอิง:

  1. หากต้องการอ่านเพิ่มเติมเกี่ยวกับPreferredAuthenticationsตัวเลือกโปรดดูman ssh_config( ดูออนไลน์ได้ที่นี่ ) อ่านเพิ่มเติมเกี่ยวกับssh -oตัวเลือกในman sshหน้าคู่มือ ( ออนไลน์ที่นี่ )
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.