วิธีแก้ไขคำเตือน: การระบุโฮสต์ระยะไกลมีการเปลี่ยนแปลง! ข้อผิดพลาด
เผยแพร่แล้ว: 2021-01-21ไม่ว่าคุณจะเชื่อมต่อกับไคลเอนต์ SFTP หรือ SSH ผ่านเทอร์มินัล ข้อผิดพลาดทั่วไปที่มาพร้อมกับคือ “คำเตือน: การระบุโฮสต์ระยะไกลมีการเปลี่ยนแปลง!” ซึ่งจะป้องกันไม่ให้คุณเชื่อมต่อกับเว็บไซต์หรือเซิร์ฟเวอร์ของคุณ สิ่งนี้เกิดขึ้นกับฉันเป็นครั้งคราว และมันน่ารำคาญมาก เนื่องจากฉันมักจะรีบแก้ไขอะไรบางอย่าง ข้อผิดพลาดนี้ทำให้ฉันต้องหยุดชะงัก

ด้านล่างนี้ เราจะแนะนำวิธีการแก้ไขข้อผิดพลาดและเชื่อมต่ออีกครั้งอย่างรวดเร็วและง่ายดายสองสามวิธี
"คำเตือน: การระบุโฮสต์ระยะไกลมีการเปลี่ยนแปลง!" ข้อผิดพลาด?
ข้อผิดพลาดด้านล่างมักเกิดขึ้นเมื่อคีย์ SSH หรือข้อมูลการเชื่อมต่อของเซิร์ฟเวอร์มีการเปลี่ยนแปลง ตัวอย่างเช่น หากคุณเพิ่งย้ายเว็บไซต์ของคุณไปยังผู้ให้บริการโฮสติ้งรายใหม่ ที่อยู่ IP ของคุณจะแตกต่างออกไป
ข้อมูลการเชื่อมต่อ (ที่อยู่ IP และข้อมูลรับรอง) บน Mac ของคุณจะถูกเก็บไว้ในไฟล์ที่รู้จัก known_hosts ของคุณ ใน Windows จะถูกเก็บไว้ในรีจิสทรี เมื่อคุณใช้ไคลเอ็นต์ SFTP (ที่ฉันชอบคือ ForkLift) หรือไคลเอ็นต์ SSH (PuTTY) จะใช้ข้อมูลเพื่อเชื่อมต่อกับเว็บเซิร์ฟเวอร์
[user@hostname ~]$ ssh root@user @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the RSA key sent by the remote host is xx:xx:xx. Please contact your system administrator. Add correct host key in /home/hostname /.ssh/known_hosts to get rid of this message. Offending RSA key in /var/lib/sss/pubconf/known_hosts:3 RSA host key for xxx.xxx.xx.xxx has changed and you have requested strict checking. Host key verification failed.- วิธีแก้ไขไฟล์ known_hosts ของคุณบน Mac
- วิธีแก้ไขไฟล์ known_hosts ของคุณบน Windows
วิธีแก้ไขไฟล์ known_hosts ของคุณบน Mac
มีสองวิธีในการแก้ไขไฟล์ known_hosts ของคุณบน Mac ฉันชอบใช้แอปมากกว่า เพราะมันง่ายและรวดเร็ว ฉันไม่ต้องจำคำสั่งเทอร์มินัล แต่ฉันจะแนะนำคุณเกี่ยวกับทั้งสองวิธี
ตัวเลือกที่ 1: แก้ไขไฟล์ known_hosts ด้วยแอป (วิธีที่ง่ายที่สุด)
แอพที่ยอดเยี่ยมที่เรียกว่า SSH Config Editor ให้คุณจัดการไฟล์การกำหนดค่าไคลเอนต์ SSH และการตั้งค่าอื่นๆ มีเวอร์ชัน Pro และฉันมักจะแนะนำให้นักพัฒนาสนับสนุนเมื่อทำได้ หากคุณมีงบประมาณจำกัด เวอร์ชันฟรีก็เพียงพอที่จะจัดการไฟล์ known_hosts ของคุณ ทำตามขั้นตอนด้านล่าง
ขั้นตอนที่ 1
ติดตั้งแอป SSH Config Editor ฟรี
ขั้นตอนที่ 2
เปิดตัวแก้ไขการกำหนดค่า SSH และคลิกที่ "ไฟล์→เปิดโฮสต์ที่รู้จัก"

ขั้นตอนที่ 3
ค้นหาและเน้นรายการที่มีปัญหา หากคุณไม่แน่ใจว่าจะเลือกอันไหน คุณควรค้นหาที่อยู่ IP เก่าและปัจจุบันของคุณ หากคุณโฮสต์กับผู้ให้บริการเช่น Kinsta สิ่งนี้เรียกว่า "ที่อยู่ IP ของไซต์" และสามารถพบได้ในแดชบอร์ด MyKinsta
จากนั้นคลิกไอคอนถังขยะเพื่อลบรายการ อีกทางเลือกหนึ่งคือลบรายการทั้งหมด

ขั้นตอนที่ 4
คลิก “ลบ” บนพรอมต์ต่อไปนี้:
คุณต้องการลบ “[xx.xxx.xx.xxx]:xxxxxx” ออกจากโฮสต์ที่รู้จักหรือไม่
ขั้นตอนที่ 5
ปิดหน้าต่างและคลิก "บันทึก" ที่พรอมต์ต่อไปนี้:

คุณต้องการบันทึกการเปลี่ยนแปลงที่ทำกับเอกสาร "โฮสต์ที่รู้จัก" หรือไม่?
ตอนนี้คุณควรจะสามารถเชื่อมต่อกับเว็บไซต์และหรือเซิร์ฟเวอร์ของคุณได้อีกครั้ง
คุณอาจไม่จำเป็นต้องใช้แอป SSH Config Editor บ่อยนัก ดังนั้นฉันไม่แนะนำให้ตรึงแอปนั้นไว้ที่ Dock เพียงปล่อยให้มันติดตั้งในบางครั้งเมื่อคุณได้รับข้อผิดพลาดในการเชื่อมต่อ
ตัวเลือกที่ 2: แก้ไขไฟล์ known_hosts จากเทอร์มินัล
ตัวเลือกที่สองคือการล้างรายการจากไฟล์ known_hosts ของคุณโดยใช้เทอร์มินัล ทำตามขั้นตอนด้านล่าง
ขั้นตอนที่ 1
เปิดแอพเทอร์มินัล วิธีที่เร็วที่สุดคือการเปิด Spotlight และค้นหา "terminal" หรือคุณสามารถค้นหาได้ใน “ยูทิลิตี้ → สถานีปลายทาง”

ขั้นตอนที่ 2
วางคำสั่งต่อไปนี้
nano ~/.ssh/known_hostsขั้นตอนที่ 3
ลบรายการที่มีปัญหา หากคุณไม่แน่ใจว่าจะเลือกอันไหน ให้ค้นหาที่อยู่ IP เก่าและปัจจุบันของคุณ อีกทางเลือกหนึ่งคือลบรายการทั้งหมด
ขั้นตอนที่ 4
พิมพ์ Ctrl + X ( ^X ) เพื่อออกและเลือก Y สำหรับใช่ เมื่อได้รับแจ้งหากคุณต้องการบันทึกบัฟเฟอร์ที่แก้ไข

ตอนนี้คุณควรจะสามารถเชื่อมต่อกับเว็บไซต์และหรือเซิร์ฟเวอร์ของคุณได้อีกครั้ง
อีกวิธีหนึ่ง คุณสามารถลบไฟล์ known_hosts ทั้งหมดของคุณและปล่อยให้มันสร้างใหม่ได้ ป้อนคำสั่งต่อไปนี้ในเทอร์มินัล
rm .ssh/known_hostsวิธีแก้ไขไฟล์ known_hosts ของคุณบน Windows
ก่อนที่จะเปลี่ยนจาก Windows เป็น Mac ฉันไม่เคยพบข้อผิดพลาดนี้เลย แต่ฉันกำลังบันทึกสิ่งต่อไปนี้ให้คุณเผื่อไว้ บน Windows พวกเขาไม่มีไฟล์ known_hosts ข้อมูล (ที่อยู่ IP และข้อมูลรับรอง) จะถูกเก็บไว้ในรีจิสทรี ทำตามขั้นตอนด้านล่าง
ขั้นตอนที่ 1
เปิดเมนูเริ่มต้นและค้นหา "regedit" คลิก "เข้าสู่"

ขั้นตอนที่ 2
เรียกดูโฟลเดอร์รีจิสทรีต่อไปนี้:
HKEY_CURRENT_USER\SoftWare\SimonTatham\PuTTY\SshHostKeys 
ขั้นตอนที่ 3
ภายในโฟลเดอร์ "SshHostKeys" ให้ลบรายการที่มีปัญหาออก หากคุณไม่แน่ใจว่าจะเลือกอันไหน ให้ค้นหาที่อยู่ IP เก่าและปัจจุบันของคุณ อีกทางเลือกหนึ่งก็คือการลบรายการทั้งหมด
คลิก "ใช่" เมื่อคุณได้รับข้อความแจ้งต่อไปนี้:
การลบค่ารีจิสทรีบางค่าอาจทำให้ระบบไม่เสถียร คุณแน่ใจหรือไม่ว่าต้องการลบค่านี้อย่างถาวร
ปิดตัวแก้ไขรีจิสทรี ตอนนี้คุณควรจะสามารถเชื่อมต่อกับเว็บไซต์และหรือเซิร์ฟเวอร์ของคุณได้อีกครั้ง
สรุป
การทำงานข้ามข้อผิดพลาดเช่นนี้เป็นเรื่องน่ารำคาญเสมอ คุณคิดว่าตอนนี้พวกเขาจะมีวิธีที่ง่ายกว่าในระบบปฏิบัติการเพื่อแก้ไขปัญหาเหล่านี้ สำหรับตอนนี้ เราจะต้องหันไปใช้กระบวนการแก้ไขปัญหาทีละขั้นตอนของเรา
หวังว่าตอนนี้คุณได้เชื่อมต่ออีกครั้งและกลับมาทำงานอีกครั้ง! หากสิ่งนี้มีประโยชน์หรือคุณมีปัญหา แสดงความคิดเห็นด้านล่าง
