คำเตือนบอกอะไร
เซิร์ฟเวอร์ใช้คีย์โฮสต์พิสูจน์ตัวตน เมื่อคีย์แตกต่างจากที่ไคลเอนต์เคยบันทึกไว้ OpenSSH จะแสดง REMOTE HOST IDENTIFICATION HAS CHANGED และปฏิเสธการเชื่อมต่อ ไคลเอนต์ไม่สามารถแยกการเปลี่ยนแปลงที่ไม่เป็นอันตรายออกจากการโจมตีได้ จึงต้องถือว่าคำเตือนยังไม่ได้รับการคลี่คลายจนกว่าจะตรวจสอบแล้ว
สาเหตุที่พบบ่อย
สาเหตุทั่วไป ได้แก่ การติดตั้งเซิร์ฟเวอร์ใหม่ การกู้คืนหรือโคลน VM จากอิมเมจ การนำที่อยู่ไปกำหนดให้เครื่องอื่น และตัวกระจายโหลดที่ส่งคุณไปยังโหนดต่างกัน ผู้โจมตีที่ดักการเชื่อมต่อก็ทำให้เกิดคำเตือนแบบเดียวกันได้ หากไม่ได้คาดว่าจะมีการเปลี่ยนแปลง ให้หยุดและอย่าป้อนรหัสผ่าน
เปรียบเทียบลายนิ้วมือ
อ่านลายนิ้วมือจริงจากเซิร์ฟเวอร์ผ่านช่องทางที่ไม่อาศัยการเชื่อมต่อ SSH นี้ เช่น คอนโซลของผู้ให้บริการหรือคอนโซลของไฮเปอร์ไวเซอร์ คำสั่ง ssh-keyscan แสดงเพียงสิ่งที่เครือข่ายส่งมาให้คุณ จึงพิสูจน์อะไรไม่ได้ด้วยตัวมันเอง มีประโยชน์เฉพาะสำหรับนำไปเปรียบเทียบกับค่าจากคอนโซลเท่านั้น
sudo ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub
ssh-keyscan -t ed25519 server.example | ssh-keygen -lf -แทนที่รายการเดิม
ลบรายการเดิมแล้วเชื่อมต่อใหม่เฉพาะเมื่อลายนิ้วมือตรงกันแล้วเท่านั้น พอร์ตที่ไม่ใช่พอร์ตมาตรฐานมีรายการของตนเองซึ่งเขียนด้วยวงเล็บเหลี่ยม ssh-keygen จะเก็บไฟล์เดิมไว้เป็น known_hosts.old อย่าปิด StrictHostKeyChecking และอย่าลบไฟล์ known_hosts ทั้งไฟล์ เพราะจะทำให้เซิร์ฟเวอร์ทั้งหมดของคุณสูญเสียการป้องกันนี้
ssh-keygen -R server.example
ssh-keygen -R '[server.example]:2222'
ssh user@server.exampleหลีกเลี่ยงคำเตือนหลังติดตั้งใหม่
หากวางแผนสร้างเซิร์ฟเวอร์ใหม่และต้องการคงตัวตนเดิม ให้สำรองคีย์โฮสต์ใน /etc/ssh อย่างปลอดภัย แล้วกู้คืนโดยใช้เจ้าของและสิทธิ์เดิม สำหรับเครื่องโคลนให้ทำตรงกันข้าม: แต่ละเครื่องที่สร้างจากอิมเมจเดียวกันต้องมีคีย์โฮสต์ของตัวเอง มิฉะนั้นหลายเซิร์ฟเวอร์จะใช้ตัวตนเดียวกัน
คีย์โฮสต์ใน CH-J Server Manager
แอปเก็บลายนิ้วมือ SHA-256 ของคีย์โฮสต์ในคลังข้อมูลเข้ารหัส แยกจากไฟล์ known_hosts ของ OpenSSH เมื่อมีการเปลี่ยนแปลง แอปจะบล็อกการเชื่อมต่อและแสดงทั้งลายนิ้วมือที่รู้จักกับลายนิ้วมือใหม่ รายการจะถูกแทนที่เมื่อคุณยืนยันเท่านั้น และการยกเลิกจะไม่เปลี่ยนอะไร ใน Alpha 0.1.1 การตรวจสอบครอบคลุมจัมป์โฮสต์ทุกตัวด้วย และการโอนที่กำลังทำงานจะหยุดเมื่อคีย์เปลี่ยน แอปไม่สามารถตรวจสอบลายนิ้วมือใหม่แทนคุณได้ การตรวจสอบผ่านช่องทางอื่นจึงยังเป็นหน้าที่ของคุณ