วิธีที่จะพลิกคีย์โฮสต์ ssh?


17

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

ฉันสร้างรหัสใหม่แล้วเพิ่มลงในการกำหนดค่า sshd เช่นนี้

HostKey / etc / ssh / ssh_host_rsa_key             (คีย์ 
2k- บิตเก่าก่อน) HostKey / etc / ssh / ssh_host_rsa4096_key (คีย์         ใหม่ที่ใหญ่กว่าใหม่ 2 )

หลังจากที่เริ่มต้นsshdผม ssh'd ไปยังโฮสต์ผมไม่ได้รับการเตือนประจำตัวเปลี่ยน ~/.ssh/known_hostsแต่ใหม่ยังไม่ได้แคใน หากฉันวางสายในลำดับที่ตรงกันข้ามฉันจะได้รับการแจ้งเตือนการเปลี่ยนบัตรประจำตัว ในทำนองเดียวกันเมื่อฉันเพิ่มคีย์ ed25519 ไม่ว่าฉันจะสั่งซื้ออะไรลูกค้าจะไม่เพิ่มคีย์ใหม่ลงในไฟล์โฮสต์ที่รู้จัก

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

ฉันรู้ว่าคุณสามารถสลับคีย์ได้จากนั้นลูกค้าทุกคนต้องเรียกใช้ssh-keygen -Rเพื่อลบคีย์เก่าจากนั้นตรวจสอบและยอมรับคีย์ใหม่ด้วยตนเอง - แต่นั่นเป็นความเจ็บปวดที่แท้จริงโดยเฉพาะอย่างยิ่งถ้าคุณมีลูกค้าจำนวนมากที่เชื่อมต่อหรือไม่จัดการ ลูกค้าทั้งหมด ไม่ต้องพูดถึงถ้าคุณไม่ดูแลลูกค้ามีโอกาสที่ดีมากที่พวกเขาจะไม่ตรวจสอบคีย์โฮสต์และเพียงแค่กด Y แทนดังนั้นความพยายามในการปรับปรุงความปลอดภัยน่าจะเปิดให้คุณเป็นคนจริง โจมตีตรงกลางแทน

มีวิธีใดบ้างที่จะทำให้การอัพเกรดคีย์โฮสต์ SSH ใช้งานได้? นั่นคือลูกค้าควรเรียนรู้คีย์ที่ปลอดภัยมากขึ้นใหม่ (และหวังว่าจะยกเลิกการเรียนรู้คีย์ที่ล้าสมัยด้วย) และโดยไม่ให้รหัสโฮสต์เปลี่ยนคำเตือนแบบแมน - ทู - เดอะ - มิด


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

คำตอบ:


14

การหมุนคีย์โฮสต์ได้รับการสนับสนุนตั้งแต่ OpenSSH 6.8 (ทั้งไคลเอนต์และเซิร์ฟเวอร์เพิ่มการสนับสนุนในรุ่นนี้)

ดังนั้นกระบวนการควรทำงานดังนี้:

  • สร้างและเพิ่มคีย์ใหม่ด้วยตัวเลือกHostKey newkey(หลังจากที่มีอยู่) ไปที่/etc/ssh/sshd_config
  • เริ่มต้นใหม่ sshd
  • ลูกค้าต้องตั้งค่าUpdateHostKeys yesในการกำหนดค่าของพวกเขา (ทั้งทั่วโลกหรือต่อโฮสต์)
  • ลูกค้าที่เชื่อมต่อจะรับคีย์ใหม่ทั้งหมด
  • หลังจากผ่านไประยะหนึ่ง (เดือน) คุณสามารถลบคีย์เก่าออกจากsshd_configและเริ่มใหม่ได้sshd
  • ลูกค้า (ที่เชื่อมต่อระหว่างช่วงการเปลี่ยนภาพ) จะมีคีย์ใหม่อยู่แล้ว (เก่าจะไม่ถูกลบออกซึ่งเป็นปัญหาเดียวที่นี่) และพวกเขาจะไม่แสดงคำเตือนการโจมตีของ MitM

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


-4

sshd ใช้บรรทัดแรกเสมอดังนั้นให้ลบออกแล้วรีสตาร์ท sshd


1
... ผลลัพธ์ที่ได้ในคีย์โฮสต์ที่น่ากลัวเปลี่ยนคำเตือน พยายามหลีกเลี่ยงปัญหานั้นโดยให้ลูกค้าเรียนรู้คีย์ใหม่ (และเลิกใช้คีย์เก่า)
Derobert

คุณพูดถูก คุณไม่สามารถใช้ 2 ปุ่มที่แตกต่างกันในครั้งเดียว ssl ไม่ใช่ tls ไม่มีการเพิ่มคุณสมบัติที่สำคัญเพียงแค่เปลี่ยน
Ipor Sircer

4
ไม่ใช่ SSL หรือ TLS โปรโตคอลรองรับหลายโฮสต์คีย์ - เช่นเคยเป็นทุกคนมีทั้งคีย์ RSA และ DSA ตอนนี้มันคือคีย์ ED25519, ECDSA และ RSA
Derobert
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.