CH-J Server Managerการจัดการเซิร์ฟเวอร์ผ่าน SSH
เมนู
คู่มือและบทความทั้งหมด →

คีย์โฮสต์ SSH เปลี่ยน: คำเตือนหมายถึงอะไรและควรทำอย่างไร

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

คำเตือนบอกอะไร

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

เอกสารโดยละเอียด

OpenSSH: ssh →

OpenSSH: ssh-keygen →

การปลดล็อกด้วยไบโอเมตริกและความปลอดภัย →