SSH เป็นโปรโตคอลเครือข่ายที่ปลอดภัยที่สร้างอุโมงค์ที่เข้ารหัสระหว่างระบบ ยังคงได้รับความนิยมในหมู่นักพัฒนาที่ต้องการเข้าถึงคอมพิวเตอร์จากระยะไกลโดยไม่ต้องใช้อินเทอร์เฟซผู้ใช้แบบกราฟิก แม้ว่า SSH จะมีมานานหลายทศวรรษและให้บริการผู้ใช้จำนวนนับไม่ถ้วนอย่างน่าเชื่อถือ แต่ก็ยังอาจได้รับผลกระทบจากข้อผิดพลาดบางอย่าง
ข้อผิดพลาดจำนวนมากเหล่านี้เป็นที่รู้จักในชุมชน SSH และวิธีแก้ไขปัญหาดังกล่าวได้รับการบันทึกไว้อย่างกว้างขวาง เหล่านี้ได้แก่ ความเข้ากันไม่ได้ของไฟร์วอลล์, ปัญหาการแทรกคีย์สาธารณะ SSH, ปัญหาโหมดคีย์ไฟล์ SSHและข้อผิดพลาด “คำเตือน: การระบุโฮสต์ระยะไกลมีการเปลี่ยนแปลง”
ข้อผิดพลาดนี้เกิดขึ้นในระบบปฏิบัติการหลักทั้งหมด รวมถึง Windows, Linux และ macOS สาเหตุของปัญหาอาจเป็นข้อกังวลด้านความปลอดภัยที่ถูกต้องมากกว่าข้อผิดพลาดทางเทคนิคทั่วไป ในบทความนี้ เราจะอธิบายว่าเหตุใดจึงเกิดเหตุการณ์นี้ ผลกระทบต่อความปลอดภัยในการเชื่อมต่อ SSH ของคุณ และวิธีแก้ไขบนแพลตฟอร์มหลักแต่ละแพลตฟอร์ม
อะไรทำให้เกิดคำเตือน: การระบุโฮสต์ระยะไกลมีการเปลี่ยนแปลง (และคุณควรกังวลหรือไม่)
“คำเตือน: การระบุโฮสต์ระยะไกลมีการเปลี่ยนแปลง” ปรากฏขึ้นเมื่อคีย์สาธารณะ SSH เก็บไว้ในของคุณ รู้จัก_โฮสต์ ไฟล์ไม่ตรงกับคีย์ที่เซิร์ฟเวอร์กำลังนำเสนออยู่ในปัจจุบัน ความไม่ตรงกันนี้จะทริกเกอร์กลไกความปลอดภัยในตัวของ SSH เพื่อปกป้องคุณจากภัยคุกคามที่อาจเกิดขึ้น
เหตุผลที่ถูกต้องสำหรับการเปลี่ยนแปลงคีย์โฮสต์
เหตุผลที่ไร้เดียงสาหลายประการอธิบายว่าทำไมรหัสโฮสต์ของเซิร์ฟเวอร์จึงอาจมีการเปลี่ยนแปลง บางครั้งคุณจะเห็นรูปแบบต่างๆ เช่น “คีย์โฮสต์ RSA มีการเปลี่ยนแปลง” ขึ้นอยู่กับประเภทคีย์เฉพาะที่ใช้

การเปลี่ยนแปลงที่เกี่ยวข้องกับเซิร์ฟเวอร์:
- ระบบปฏิบัติการเซิร์ฟเวอร์ถูกติดตั้งใหม่หรืออัปเกรด
- เซิร์ฟเวอร์ถูกสร้างขึ้นใหม่หรือกู้คืนจากการสำรองข้อมูล
- การกำหนดค่า SSH ของเซิร์ฟเวอร์ถูกรีเซ็ต
- เครื่องทางกายภาพหรือเสมือนถูกแทนที่
- การโยกย้ายเซิร์ฟเวอร์ไปยังฮาร์ดแวร์ใหม่
การเปลี่ยนแปลงการกำหนดค่าเครือข่าย:
- ผู้ให้บริการคลาวด์รีไซเคิลที่อยู่ IP เมื่อเวลาผ่านไป หรือกำหนดเส้นทางการเชื่อมต่อของคุณผ่านโหลดบาลานเซอร์
- DHCP กำหนดที่อยู่ IP ใหม่ให้กับเครื่องอื่น
- IP ของเซิร์ฟเวอร์ที่เลิกใช้งานแล้วถูกกำหนดให้กับระบบใหม่
- ระเบียน DNS ได้รับการอัปเดตให้ชี้ไปยังเซิร์ฟเวอร์อื่น

การดำเนินการของฝ่ายบริหารที่สำคัญ:
- ผู้ดูแลระบบสร้างคีย์โฮสต์ใหม่ด้วยตนเองเพื่อความปลอดภัย
- ติดตั้งซอฟต์แวร์เซิร์ฟเวอร์ SSH ใหม่แล้ว
- นโยบายความปลอดภัยจำเป็นต้องมีการหมุนเวียนคีย์
สิ่งสำคัญคือต้องรับรู้ว่าการเปลี่ยนรหัสผ่านผู้ใช้จะไม่ส่งผลต่อคีย์โฮสต์ สิ่งเหล่านี้แสดงถึงกลไกการรับรองความถูกต้องที่แยกจากกัน คีย์โฮสต์จะเปลี่ยนเมื่อมีการแก้ไขเซิร์ฟเวอร์หรือการกำหนดค่า SSH เท่านั้น
เมื่อใดที่ควรใช้คำเตือนอย่างจริงจัง
แม้ว่าการเปลี่ยนแปลงคีย์โฮสต์หลายอย่างจะถูกต้องตามกฎหมาย แต่ก็อาจบ่งบอกถึงภัยคุกคามความปลอดภัยที่แท้จริง คุณควรกังวลหาก:
- คุณไม่ได้ทำการเปลี่ยนแปลงใดๆ กับเซิร์ฟเวอร์หรือทราบถึงการบำรุงรักษาตามกำหนดเวลาใดๆ
- คุณไม่สามารถตรวจสอบสาเหตุของการเปลี่ยนแปลงคีย์กับผู้ดูแลระบบเซิร์ฟเวอร์ได้
- เซิร์ฟเวอร์มีการเข้าถึงผ่านเครือข่ายสาธารณะหรือการเชื่อมต่อที่ไม่น่าเชื่อถือ
- คุณกำลังเชื่อมต่อกับระบบการผลิตหรือเซิร์ฟเวอร์ที่มีข้อมูลที่ละเอียดอ่อน

การโจมตีแบบแทรกกลางอากาศเกิดขึ้นได้ค่อนข้างน้อย ในการโจมตีดังกล่าว ฝ่ายตรงข้ามจะวางตำแหน่งตัวเองระหว่างคอมพิวเตอร์ของคุณกับเซิร์ฟเวอร์ที่ถูกต้อง เพื่อสกัดกั้นการรับส่งข้อมูลทั้งหมด
ความผิดพลาดของมนุษย์ และวิศวกรรมสังคมคิดเป็น 68% ของการละเมิดความปลอดภัย ซึ่งเป็นสิ่งสำคัญในการเฝ้าระวัง คุณสามารถปกป้องระบบของคุณเพิ่มเติมได้โดยการเรียนรู้เกี่ยวกับ การป้องกันการโจมตีแบบเดรัจฉาน
สถิติล่าสุดจาก IBM แสดงให้เห็นว่าต้นทุนเฉลี่ยทั่วโลกของ การละเมิดข้อมูล อยู่ที่ 4.44 ล้านดอลลาร์ในปี 2568 โดยเวลาในการตรวจจับเฉลี่ยแปดเดือน สิ่งนี้แสดงให้เห็นว่าเหตุใดจึงมีกลไกการตรวจสอบคีย์โฮสต์ของ SSH และเหตุใดคุณจึงไม่ควรเพิกเฉยต่อคำเตือนเหล่านี้หากไม่มีการตรวจสอบ
วิธีการตรวจสอบว่าคำเตือนนั้นปลอดภัยหรือไม่
ก่อนดำเนินการแก้ไขปัญหา ให้ทำตามขั้นตอนการตรวจสอบเหล่านี้:

- ตรวจสอบกับทีมของคุณ: หากคุณแชร์การเข้าถึงเซิร์ฟเวอร์ ให้ถามเพื่อนร่วมงานว่าพวกเขาได้ทำการเปลี่ยนแปลงหรือไม่
- ตรวจสอบบันทึกเซิร์ฟเวอร์: ตรวจสอบบันทึกการบำรุงรักษาหรือบันทึกการเปลี่ยนแปลงสำหรับกิจกรรมล่าสุด
- ติดต่อผู้ให้บริการโฮสติ้งของคุณ: หากใช้บริการคลาวด์ ให้ตรวจสอบว่ามีการบำรุงรักษาหรือไม่
- ใช้ช่องทางที่ปลอดภัย: หากเป็นไปได้ ให้เชื่อมต่อผ่านเครือข่ายที่ปลอดภัยที่รู้จักเพื่อตรวจสอบลายนิ้วมือ
- เปรียบเทียบลายนิ้วมือ: ผู้ให้บริการโฮสติ้งบางรายแสดงลายนิ้วมือ SSH ปัจจุบันในแผงควบคุม
หากคุณสามารถยืนยันได้ว่าการเปลี่ยนแปลงคีย์นั้นถูกต้องตามกฎหมาย คุณสามารถดำเนินการลบคีย์เก่าและยอมรับคีย์ใหม่ได้อย่างปลอดภัย
หากคุณต้องการหลีกเลี่ยงการกำหนด IP ใหม่แบบไดนามิกหรือความขัดแย้งของคีย์โฮสต์ โครงสร้างพื้นฐานที่คุณเลือกจะมีบทบาทสำคัญ
Cloudzy จัดให้ โฮสติ้ง SSH VPS ด้วย IP แบบคงที่เฉพาะ คุณทำงานบนโปรเซสเซอร์ AMD Ryzen 9 พร้อมที่เก็บข้อมูล NVMe เพื่อการดำเนินการคำสั่งทันที เครือข่ายของเราถึง 40 Gbps ใน 12 แห่งทั่วโลก นอกจากนี้เรายังมีการป้องกัน DDoS ฟรีเพื่อรักษาการเชื่อมต่อของคุณให้ปลอดภัย
วิธีการแก้ไขข้อผิดพลาด "การระบุโฮสต์ระยะไกลมีการเปลี่ยนแปลง"
การแก้ไขนั้นง่ายมาก: ลบบันทึกคีย์เก่าออกจากระบบของคุณ วิธีนี้จะล้างข้อมูลที่ไม่ตรงกันและช่วยให้คุณบันทึกคีย์ใหม่ในครั้งถัดไปที่คุณเชื่อมต่อ ลองดูคำแนะนำของเราที่ ลูกค้า SSH สำหรับเครื่องมือเพิ่มเติม
นอกจากนี้คุณยังสามารถทำสิ่งนี้ได้ด้วยคำสั่งเดียวหรือโดยการแก้ไขไฟล์ด้วยตนเอง
วิธีที่ 1: บรรทัดคำสั่ง (เร็วที่สุด)
วิธีนี้ใช้ได้กับ macOS, Linux และ Windows 10+ (โดยใช้ OpenSSH) เป็นวิธีที่เร็วที่สุดในการแก้ไขข้อผิดพลาด สำหรับข้อมูลเพิ่มเติม คุณสามารถอ่านได้ที่ หน้าคน ssh-keygen.
- เปิดเทอร์มินัลของคุณ
- รันคำสั่งนี้ (แทนที่ ชื่อโฮสต์ ด้วย IP หรือโดเมนของเซิร์ฟเวอร์ของคุณ):
ssh-keygen -R hostname
This command automatically finds the old key in your known_hosts file and deletes it. Method 2: Manual File Editing (macOS)
หากคุณต้องการโปรแกรมแก้ไขภาพ คุณสามารถลบคีย์ได้ด้วยตัวเอง ข้อความแสดงข้อผิดพลาดมักจะบอกคุณอย่างชัดเจนว่าควรลบหมายเลขบรรทัดใด
เปิดเทอร์มินัลของคุณและแก้ไขไฟล์ด้วย นาโน:
nano ~/.ssh/known_hosts
ค้นหาบรรทัดจากข้อความแสดงข้อผิดพลาดของคุณ ลบออกแล้วกด Ctrl + X และ Y เพื่อบันทึก

โซลูชั่นสำหรับวินโดวส์
โดยทั่วไปผู้ใช้ Windows จะใช้ไคลเอนต์ OpenSSH ในตัวหรือ PuTTY
ตัวเลือกที่ 1: Windows OpenSSH (Windows 10/11)
บน Windows 10 และ 11 OpenSSH เป็นคุณสมบัติเสริม เพิ่มผ่านการตั้งค่า > แอป > คุณสมบัติเสริม เซิร์ฟเวอร์ 2025 มีไคลเอ็นต์อยู่ด้วย แต่คุณต้องเปิดใช้งาน
หากคุณใช้ PowerShell หรือ Command Prompt ไฟล์ ssh-keygen คำสั่งจากวิธีที่ 1 ก็ใช้ได้เช่นกัน
หากต้องการแก้ไขไฟล์ด้วยตนเองแทน:
- กด ปุ่ม Windows + R.
- พิมพ์ %โปรไฟล์ผู้ใช้%\.ssh และกด เข้า.
- เปิด รู้จัก_โฮสต์ ไฟล์ด้วย Notepad
- ลบบรรทัดที่ทำให้เกิดข้อผิดพลาดและบันทึกไฟล์
สำหรับการจัดการคีย์อย่างเหมาะสม โปรดดูคำแนะนำของเราที่ การสร้างคีย์ SSH ใน Windows.
ตัวเลือกที่ 2: การใช้ PuTTY
PuTTY เก็บคีย์ไว้ใน Windows Registry แทนที่จะเป็นไฟล์
- เปิดตัวแก้ไขรีจิสทรี (กด ปุ่ม Windows + R, พิมพ์ ลงทะเบียนใหม่และตี เข้า).
- นำทางไปยัง: HKEY_CURRENT_USER\ซอฟต์แวร์\SimonTatham\PuTTY\SshHostKeys\
- ค้นหารายการที่ตรงกับชื่อโฮสต์หรือ IP ของเซิร์ฟเวอร์ของคุณ
- คลิกขวาแล้วเลือก ลบ.

โซลูชั่นสำหรับลินุกซ์
ที่ ssh-keygen คำสั่งที่เราพูดถึง วิธีที่ 1 เป็นวิธีมาตรฐานในการแก้ไขปัญหานี้บน Linux มันรวดเร็วและรองรับโดยกำเนิด
การแก้ไขด้วยตนเอง
หากคุณต้องการดูเนื้อหาไฟล์ คุณสามารถแก้ไขได้ด้วยโปรแกรมแก้ไขข้อความเช่น Nano
- เปิดเทอร์มินัลของคุณ
- พิมพ์ นาโน ~/.ssh/known_hosts และกด เข้า.
- ค้นหาหมายเลขบรรทัดที่กล่าวถึงในข้อความแสดงข้อผิดพลาดของคุณ
- ลบบรรทัด จากนั้นกด Ctrl + X และ Y เพื่อบันทึก
คุณยังสามารถใช้ เป็นกลุ่ม (เป็นกลุ่ม ~/.ssh/known_hosts) หากคุณคุ้นเคย

คำเตือนเกี่ยวกับการปิดใช้งานการตรวจสอบ
คุณสามารถบังคับให้ SSH เชื่อมต่อโดยไม่ต้องมีการตรวจสอบได้ แต่การดำเนินการนี้มีความเสี่ยง มันข้ามการป้องกันการโจมตีจากคนกลาง
ใช้แนวทางนี้สำหรับการทดสอบในพื้นที่บนเครือข่ายที่เชื่อถือได้เท่านั้น สำหรับ macOS และ Linux ให้พิมพ์สิ่งนี้:
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null [email protected]
หากคุณใช้ Windows เส้นทาง Unix จะล้มเหลว คุณต้องใช้ น.ล เพื่อให้บายพาสทำงานได้:
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=NUL [email protected]
อย่าเรียกใช้การแทนที่เหล่านี้บนการเชื่อมต่อสาธารณะหรือเซิร์ฟเวอร์ที่ใช้งานจริง
การแก้ไขคีย์ที่ไม่ตรงกันคือการบำรุงรักษาตามปกติ แต่คุณสามารถทำได้มากกว่านี้เพื่อรักษาการเชื่อมต่อให้ปลอดภัย บอทมักจะกำหนดเป้าหมายพอร์ตเริ่มต้น 22 ด้วยการโจมตีแบบเดรัจฉาน คุณสามารถหลีกเลี่ยงเสียงรบกวนรอบข้างส่วนใหญ่ได้โดย การเปลี่ยนพอร์ต SSH ใน Linux ไปสู่สิ่งที่คาดเดาได้น้อยกว่า

ห้ามใช้วิธีนี้กับเซิร์ฟเวอร์ที่ใช้งานจริงหรือบนเครือข่ายที่ไม่น่าเชื่อถือ
วิธีป้องกันข้อความ “Remote Host Identification has Changed” ในครั้งถัดไป
แม้ว่าคุณจะไม่สามารถป้องกันการเปลี่ยนแปลงคีย์โฮสต์ที่ถูกต้องได้เสมอไป แต่คุณสามารถลดการหยุดชะงักและรักษาแนวปฏิบัติด้านความปลอดภัยที่ดีขึ้นได้
คู่มืออ้างอิงฉบับย่อ
| บทบาทของคุณ | กลยุทธ์สำคัญ |
| ผู้ดูแลระบบ | สำรองคีย์ เปลี่ยนแปลงเอกสาร ใช้ใบรับรอง และหมุนเวียนคีย์เป็นประจำ |
| ผู้ใช้ทั่วไป | ดูแลรักษาสินค้าคงคลัง ตรวจสอบผ่านช่องทางที่ปลอดภัย และตรวจสอบบันทึก |
| สภาพแวดล้อมคลาวด์
ผู้ใช้ |
ใช้ชื่อ DNS ใช้ประโยชน์จากเครื่องมือของผู้ให้บริการ และใช้โครงสร้างพื้นฐานเป็นโค้ด |

สำหรับผู้ดูแลระบบ
สำรองคีย์โฮสต์: บันทึกคีย์จาก /etc/ssh/ ก่อนที่จะติดตั้งระบบปฏิบัติการใหม่ กู้คืนในภายหลังเพื่อป้องกันคำเตือนสำหรับผู้ใช้ของคุณ
การเปลี่ยนแปลงที่วางแผนไว้ของเอกสาร: แจ้งเตือนผู้ใช้ก่อนเปลี่ยนกุญแจและแชร์ลายนิ้วมือใหม่อย่างปลอดภัย ซึ่งช่วยให้สามารถตรวจสอบการเชื่อมต่อได้
ใช้ใบรับรอง SSH: ทีมขนาดใหญ่ควรใช้ผู้ออกใบรับรองส่วนกลาง นี่เป็นการลงนามคีย์โฮสต์และลดความจำเป็นในการตรวจสอบด้วยตนเอง
ใช้การหมุนเวียนคีย์: กำหนดเวลาการเปลี่ยนแปลงคีย์โฮสต์ของคุณ การอัปเดตที่คาดการณ์ได้นั้นง่ายกว่าสำหรับทีมของคุณในการจัดการมากกว่าการอัปเดตที่ไม่คาดคิด
สำหรับผู้ใช้ทั่วไป
รักษาสินค้าคงคลัง: เก็บบันทึกลายนิ้วมือเซิร์ฟเวอร์ส่วนตัวหรือใช้เอกสารที่ปลอดภัยของทีมของคุณ
ยืนยันผ่าน Out-of-Band: ยืนยันคีย์กับแหล่งที่เชื่อถือได้ เช่น คอนโซลระบบคลาวด์ ไม่ใช่ข้อความทั่วไป
ตรวจสอบบันทึก: ตรวจสอบบันทึก SSH ในเครื่องของคุณเป็นประจำเพื่อดูรูปแบบการเชื่อมต่อที่ผิดปกติหรือข้อผิดพลาดซ้ำๆ
ใช้การจัดการการกำหนดค่า: ใช้ไฟล์กำหนดค่า SSH เพื่อจัดการสภาพแวดล้อมการพัฒนาแบบไดนามิกโดยไม่ลดการตั้งค่าความปลอดภัย
สำหรับสภาพแวดล้อมคลาวด์แบบไดนามิก
ใช้ชื่อ DNS: เชื่อมต่อโดยใช้ชื่อโฮสต์แทน IP สิ่งนี้จะรักษาความสอดคล้องเมื่อที่อยู่พื้นฐานมีการเปลี่ยนแปลง
ใช้ประโยชน์จากเครื่องมือคลาวด์: ใช้คอนโซลของผู้ให้บริการเพื่อดึงข้อมูลลายนิ้วมือปัจจุบัน ตรวจสอบคีย์กับเครื่องมือเหล่านี้ก่อนที่จะยอมรับการเปลี่ยนแปลง
โครงสร้างพื้นฐานเป็นรหัส: ตรวจสอบคีย์อัตโนมัติด้วยเครื่องมือเช่น Terraform สำหรับการตั้งค่าขั้นสูง คุณก็สามารถทำได้เช่นกัน ใช้พร็อกซี SSH SOCKS5.
เจ้าภาพบาสชั่น: ตั้งค่าเซิร์ฟเวอร์ข้ามด้วยคีย์ที่เสถียร สิ่งเหล่านี้ทำหน้าที่เป็นจุดเริ่มต้นที่ปลอดภัยไปยังโครงสร้างพื้นฐานแบบไดนามิกของคุณ
บทสรุป
“คำเตือน: การระบุโฮสต์ระยะไกลมีการเปลี่ยนแปลง” ทำหน้าที่เป็นคุณลักษณะด้านความปลอดภัยที่สำคัญของ SSH ไม่ใช่ข้อบกพร่องที่ไม่ควรมองข้าม แม้ว่าคำเตือนนี้มักจะปรากฏขึ้นด้วยเหตุผลที่ถูกต้องตามกฎหมาย เช่น การบำรุงรักษาเซิร์ฟเวอร์หรือการเปลี่ยนแปลงการกำหนดค่า แต่คำเตือนนี้มีบทบาทสำคัญในการปกป้องคุณจากการโจมตีจากคนกลางและการเข้าถึงที่ไม่ได้รับอนุญาต
เมื่อคุณพบคำเตือนนี้ ให้ตรวจสอบสาเหตุก่อนดำเนินการต่อ ในกรณีส่วนใหญ่ วิธีแก้ปัญหานั้นตรงไปตรงมา: ลบคีย์โฮสต์เก่าโดยใช้วิธีการที่อธิบายไว้สำหรับระบบปฏิบัติการของคุณ จากนั้นยอมรับคีย์ใหม่ในการเชื่อมต่อครั้งถัดไป
เมื่อเรียนรู้วิธีการทำงานของคีย์โฮสต์ SSH และปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุด คุณจะรักษาทั้งความปลอดภัยและความสะดวกสบายในเวิร์กโฟลว์การเข้าถึงระยะไกลของคุณได้ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการถ่ายโอนไฟล์อย่างปลอดภัย โปรดดู การคัดลอกไฟล์ผ่าน SSH.