ฉันกำลังพยายามอัปเกรดเซิร์ฟเวอร์ 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 ใช้งานได้? นั่นคือลูกค้าควรเรียนรู้คีย์ที่ปลอดภัยมากขึ้นใหม่ (และหวังว่าจะยกเลิกการเรียนรู้คีย์ที่ล้าสมัยด้วย) และโดยไม่ให้รหัสโฮสต์เปลี่ยนคำเตือนแบบแมน - ทู - เดอะ - มิด