คีย์ SSH DSA ใช้งานไม่ได้สำหรับการตรวจสอบสิทธิ์ด้วยรหัสผ่านอีกต่อไป


25

หลังจากอัปเกรดเป็น Fedora 23 การรับรองความถูกต้องแบบไม่ใช้รหัสผ่าน (ใช้รหัสสาธารณะ) จะไม่ทำงานใน SSH อีกต่อไป: เมื่อพยายามที่จะ SSH ไปยังโฮสต์บางแห่งมันจะถามรหัสผ่านของฉันที่รีโมตโฮสต์ ฉันไม่สามารถใช้กุญแจส่วนตัวของ SSH ได้ ทุกอย่างทำงานได้ดีกับ Fedora 22

กุญแจสาธารณะของฉันคือรหัส DSA ( ~/.ssh/id_dsa.pub) ฉันใช้ OpenSSH 7.1 ( openssh-7.1p1-5.fc23.x86_64)

ฉันจะขอการรับรองความถูกต้องด้วยรหัสผ่านน้อยลงเพื่อให้ทำงานได้อย่างถูกต้องอีกครั้งได้อย่างไร



1
ขอบคุณ @ dave_thompson_085 นี้ไม่ได้เป็นของล่อsuperuser.com/q/962918/93541 คำถามนั้นถามว่าจะใช้ssh -Qอย่างไร นี่คือการถามวิธีแก้ปัญหาความล้มเหลวของ SSH ฉันพบเนื้อหาบางส่วนที่superuser.com/q/962918/93541และที่อื่น ๆ มีประโยชน์ในการระบุวิธีแก้ปัญหานี้ แต่คำตอบที่อธิบายถึงวิธีการใช้ssh -Qและไม่ตอบคำถามนี้ (เช่นไม่อธิบายวิธีการแก้ไข ปัญหานี้) ดังนั้นในมุมมองของฉันมันไม่ใช่การซ้ำซ้อน หนึ่งบน Unix และ Linux เป็นที่คล้ายกันมาก ฉันหวังว่าฉันจะเห็นสิ่งนั้นก่อนหน้านี้ ขอบคุณอีกครั้งสำหรับลิงค์!
DW

ตอบคุณพูดถูก ฉันให้พวกเขาทั้งสองคั่นหน้าเป็น "OpenSSH 7.0 no DSA" ซึ่งในกรณีก่อนหน้านี้ไม่ใกล้พอ ขอโทษ
dave_thompson_085

คำตอบ:


40

นี่เป็นผลลัพธ์ของการอัพเกรดเป็น OpenSSH 7.0 ตามบันทึกย่อประจำรุ่นของ OpenSSH 7.0 กล่าวว่า "การสนับสนุนสำหรับโฮสต์ ssh-dss และรหัสผู้ใช้ถูกปิดใช้งานโดยค่าเริ่มต้นในขณะใช้งาน"

วิธีแก้ไขคือการเพิ่มบรรทัดต่อไปนี้ลง~/.ssh/configในเครื่องไคลเอนต์ทุกเครื่อง (ทุกเครื่องที่คุณเรียกใช้ไคลเอนต์ SSH):

PubkeyAcceptedKeyTypes=+ssh-dss

ถ้าเซิร์ฟเวอร์ที่ใช้ OpenSSH 7.0 หรือใหม่กว่าคุณจะยังต้องเพิ่มบรรทัดนี้/etc/ssh/sshd_configบนเครื่องเซิร์ฟเวอร์แต่ละ

หรือคุณสามารถสร้างคีย์ SSH ใหม่ทั้งหมดและเพิ่มลงในไฟล์ authorized_keys ของคุณในทุก ๆ เซิร์ฟเวอร์ที่คุณต้องการลงชื่อเข้าใช้ ฉันแนะนำให้คุณใช้ RSAเพื่อหลีกเลี่ยงปัญหาความเข้ากันได้ ฉันไม่แนะนำ ECDSA เนื่องจากดูเหมือนว่าgnome-keyring-daemon จะไม่รับคีย์ SSH ประเภท ECDSA โดยอัตโนมัติ


หมายเหตุบรรณาธิการ: เหตุใดกลุ่ม OpenSSH จึงปิดการใช้งานคีย์ DSA ฉันไม่รู้ เท่าที่ฉันสามารถยืนยันได้ไม่มีอะไรผิดปกติกับความปลอดภัยของคีย์ DSA (ssh-dss) หน้าเว็บ OpenSSHอ้างว่า SSH-DSS จะอ่อนแอ แต่เท่าที่ผมทราบ, 1024 บิต SSH-DSS ไม่มีอ่อนแอกว่า RSA 1024 บิตและคีย์ RSA 1024 บิตไม่ได้พิการ


1
การเลือกประเภทของคีย์ถูกกล่าวถึงเรื่องความปลอดภัยเป็นบางครั้ง ความปลอดภัยของคีย์ DSA นั้นน่าสงสัยตั้งแต่ต้นและปลอดภัยน้อยกว่าถ้าคุณไม่มีตัวสร้างแบบสุ่มที่ดี (ซึ่งคุณไม่แน่ใจ) และตั้งแต่ตอนนี้มีประเภทคีย์อื่น ๆ ที่เป็นไปได้ที่จะใช้ไม่มีเหตุผลที่จะรักษาคนที่น่าสงสัย
Jakuje

2
@Jakuje ใช่การเลือกประเภทที่สำคัญคือการหารือเกี่ยวกับการรักษาความปลอดภัยข้อมูลที่นี่และที่นี่ ฉันอ่านทั้งหมดก่อนที่จะเขียนหมายเหตุบรรณาธิการของฉันและฉันยังคงงงว่าทำไมคีย์ DSA ถูกปิดใช้งาน: พวกเขาไม่ได้อ่อนแอกว่าคีย์ RSA ที่มีความยาวเท่ากันซึ่งไม่ได้ปิดการใช้งาน ไม่มีสิ่งใดในเธรดเหล่านั้นที่บ่งชี้ว่า DSA นั้น "น่าสงสัย" และอย่างที่โทมัสพรพินพูดว่า "ไม่มีเหตุผลที่เกี่ยวกับความปลอดภัยในการเลือกประเภทหนึ่งมากกว่าอีกประเภทหนึ่ง (ต่อ)
DW

ดูที่นี่สำหรับการสนทนารายละเอียดเพิ่มเติม
DW

0

สองเซ็นต์ของฉัน

ในฐานะที่เป็น.ssh/configไฟล์แก้ไขเพื่อให้อนุญาตนี่ดูเหมือนจะเป็นความคิดที่ไม่ดีนักฉันขอแนะนำ

  1. สร้างคีย์ใหม่โดยใช้เครื่องมือล่าสุด

    จากนั้นคัดลอกรหัสสาธารณะใหม่ (ไปที่ clipbord)

  2. เข้าสู่ระบบเป็นครั้งสุดท้ายโดยใช้รหัสเก่า:

    ssh -i .ssh/id_dsa.pub -o PubkeyAcceptedKeyTypes=+ssh-dss user@host
    

    แล้วอัพเกรด@host's authorized_keysแฟ้มโดยการเพิ่มใหม่ของคุณpubkeyและออกจากระบบ

    cat >>.ssh/authorized_keys
    

    pasteจากนั้นCtrl+D

  3. เข้าสู่ระบบด้วยรหัสใหม่โดยใช้ไวยากรณ์เริ่มต้น:

    ssh user@host
    
    1. แล้วอัพเกรด@host's authorized_keysไฟล์โดยการเอาคุณเก่าpubkey (ผมใช้sed -e 1d -i .ssh/authorized_keysเมื่อ pubkey เก่าของฉันอยู่บนเส้น1ของไฟล์นี้)

    2. ฉันขอแนะนำให้คุณอัพเกรดเซิร์ฟเวอร์ ssh ถ้าคุณทำได้

    3. ออกจากระบบ
  4. ทดสอบว่ารหัสเก่าไม่ทำงานอีกต่อไป

    ssh -i .ssh/id_dsa.pub -o PubkeyAcceptedKeyTypes=+ssh-dss user@host
    ...
    Permission denied...
    

    สิ่งนี้ต้องไม่ทำงาน ;-)

  5. คุณสามารถตรวจสอบอีกครั้งว่าทุกอย่างเรียบร้อยดี:

    ssh user@host uptime
    

ไม่ชัดเจนสำหรับฉันว่าทำไมคุณคิดว่าการแก้ไข~/.ssh/configไม่ใช่ความคิดที่ดี
DW

เพราะสิ่งนี้เลิกใช้แล้วและผู้เขียน ssh แนะนำไม่ควรใช้ ดูopenssh.com/legacy.html
F. Hauri

โอ้เข้าใจแล้ว ดูเหมือนว่าความกังวลของคุณไม่ได้อยู่ที่ความคิดของการแก้ไข~/.ssh/configต่อ แต่ด้วยความคิดของการอนุญาตให้ DSA ขอบคุณที่อธิบาย นั่นทำให้รู้สึก (ฉันคิดว่าฉันได้กล่าวถึงแล้วในคำตอบของฉันและความคิดเห็นของฉันทำไมฉันพบว่าคำแนะนำที่จะทำให้งง แต่ฉันจะไม่พยายามที่จะอภิปรายที่นี่.)
DW

การแก้ไข.configทำให้คุณสามารถดำเนินsshการได้เป็นเวลานานและทำให้เกิดหมอกซึ่งคุณใช้อัลกอริธึมที่อ่อนแอ โดยใช้-o Pubkey...บรรทัดคำสั่งคุณจะไม่ให้อภัยว่ามีบางสิ่งบางอย่างที่จะอัพเกรด
F. Hauri
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.