วิธีเปิดใช้งานการแลกเปลี่ยนคีย์ diffie-hellman-group1-sha1 บน Debian 8.0?


65

ฉันไม่สามารถ ssh ไปยังเซิร์ฟเวอร์ที่ขอdiffie-hellman-group1-sha1วิธีแลกเปลี่ยนกุญแจได้:

ssh 123.123.123.123
Unable to negotiate with 123.123.123.123 port 22: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1

วิธีการเปิดใช้งานdiffie-hellman-group1-sha1วิธีการแลกเปลี่ยนที่สำคัญใน Debian 8.0

ฉันได้ลอง (ตามที่เสนอที่นี่ ) เพื่อ

  1. เพิ่มบรรทัดต่อไปนี้ในของฉัน /etc/ssh/ssh_config

    KexAlgorithms diffie-hellman-group1-sha1,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1
    Ciphers 3des-cbc,blowfish-cbc,aes128-cbc,aes128-ctr,aes256-ctr
    
  2. สร้างคีย์ใหม่ด้วย

    ssh-keygen -A
    
  3. รีสตาร์ท ssh ด้วย

    service ssh restart
    

    แต่ยังคงได้รับข้อผิดพลาด


ฉันเกิดขึ้นแบบเดียวกันกับ Debian 9
Rui F Ribeiro

ลอง diffie-hellman-group-exchange-sha256
Miguel

คำตอบ:


92

เว็บไซต์ OpenSSH มีหน้าที่ทุ่มเทให้กับปัญหาดั้งเดิมเช่นหน้านี้ มันแนะนำวิธีการดังต่อไปนี้บนไคลเอนต์ :

ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 123.123.123.123

หรือมากกว่านั้นอย่างถาวรเพิ่ม

Host 123.123.123.123
    KexAlgorithms +diffie-hellman-group1-sha1

~/.ssh/configไปยัง

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


ฉันยังประสบปัญหานี้ในวันนี้ แต่นั่นเป็นเพราะเครือข่าย ฉันเปลี่ยนเครือข่ายและปัญหาได้หายไป
Luv33preet

พยายามด้านบน แต่ได้Unable to negotiate with 192.168.1.123 port 22222: no matching cipher found. Their offer: aes128-cbc,3des-cbc,aes256-cbc,twofish256-cbc,twofish-cbc,twofish128-cbc,blowfish-cbc
typelogic

@ifelsemonkey นั่นเป็นปัญหาที่แตกต่างกันโปรดทราบว่าข้อเสนอที่คุณได้รับนั้นไม่ตรงกับที่เสนอในคำถาม
Stephen Kitt

2
ยืนยันว่าเป็นปัญหาที่แตกต่าง ฉันสามารถแก้ไขได้โดยเพิ่มรายการต่อไปนี้ลงใน~/.ssh/configไฟล์ ของฉัน และอยู่ภายใต้มันHost 192.168.1.123 Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc
typelogic

17

ฉันลองวิธีนี้ แต่ปัญหาของฉันคือฉันมีลูกค้า (รุ่นเก่า) จำนวนมากเชื่อมต่อกับเซิร์ฟเวอร์ที่เพิ่งอัปเกรด (ubuntu 14 -> ubuntu 16)

การเปลี่ยนแปลงจาก openssh6 -> openssh7 ถูกปิดใช้งานโดยค่าเริ่มต้นdiffie-hellman-group1-sha1วิธีการแลกเปลี่ยนคีย์

หลังจากอ่านสิ่งนี้และสิ่งนี้ฉันมาพร้อมกับการเปลี่ยนแปลงที่ฉันต้องทำกับ/etc/ssh/sshd_configไฟล์:

#Legacy changes
KexAlgorithms +diffie-hellman-group1-sha1
Ciphers +aes128-cbc

แต่ชุดของการเปลี่ยนแปลงที่กว้างกว่าเดิมคือ (นำมาจากที่นี่ )

#Legacy changes
KexAlgorithms diffie-hellman-group1-sha1,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1
Ciphers 3des-cbc,blowfish-cbc,aes128-cbc,aes128-ctr,aes256-ctr

4
หวังว่าคุณจะสามารถอัปเกรดลูกค้าของคุณได้ในบางกรณีอัลกอริทึมดั้งเดิมถูกปิดใช้งานด้วยเหตุผลที่ดีมากและไม่ควรเปิดใช้งานใหม่อีกครั้ง (คุณอาจตระหนักว่าฉันเพิ่งคิดว่ามันคุ้มค่าที่จะชี้ให้ผู้อ่านคนอื่น ๆ )
สตีเฟ่น Kitt

1
วิธีนี้ใช้ได้กับฝั่งเซิร์ฟเวอร์ (ต่างจากคำตอบที่คล้ายกันซึ่งเป็นที่ยอมรับซึ่งมุ่งเน้นไปที่ฝั่งไคลเอ็นต์)
knb

ฉันกำลังพยายามใช้รหัสเดิมเพื่อเปิดใช้งานปุ่มเก่า แต่เนื่องจากฉันเป็นมือใหม่ฉันไม่รู้ว่าจะวาง IP แบบไหนเมื่อฉันเขียน ssh -oKexAlgorithms = + diffie-hellman-group1-sha1 123.123.123.123
Yousi

เพื่อเพิ่มผู้คนในอนาคตเพื่อค้นหาฉันกำลังเชื่อมต่อผ่าน SSH จาก Mac ที่ใช้ OpenSSH_7.9p1 ไปยังสวิตช์ Cisco 3750 ที่กำลังทำงานอยู่: ซอฟต์แวร์ Cisco IOS, ซอฟต์แวร์ C3750 (C3750-IPSERVICESK9-M), รุ่น 12.2 (55) SE12, RELEASE SOFTWARE (FC2) ฉันได้เพิ่มสิ่งต่อไปนี้ในการกำหนดค่าไคลเอนต์และสามารถที่จะ ssh ใน: KexAlgorithms + diffie-hellman-group1-sha1 Ciphers + aes128-
cbc
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.