วิธีแก้ไขคำเตือน: การระบุโฮสต์ระยะไกลมีการเปลี่ยนแปลง! ข้อผิดพลาด

เผยแพร่แล้ว: 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 และคลิกที่ "ไฟล์→เปิดโฮสต์ที่รู้จัก"

เปิดไฟล์ที่รู้จัก_hosts
เปิดไฟล์ที่รู้จัก_hosts

ขั้นตอนที่ 3

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

จากนั้นคลิกไอคอนถังขยะเพื่อลบรายการ อีกทางเลือกหนึ่งคือลบรายการทั้งหมด

ลบ Know_hosts รายการ
ลบ Know_hosts รายการ

ขั้นตอนที่ 4

คลิก “ลบ” บนพรอมต์ต่อไปนี้:

คุณต้องการลบ “[xx.xxx.xx.xxx]:xxxxxx” ออกจากโฮสต์ที่รู้จักหรือไม่

ขั้นตอนที่ 5

ปิดหน้าต่างและคลิก "บันทึก" ที่พรอมต์ต่อไปนี้:

คุณต้องการบันทึกการเปลี่ยนแปลงที่ทำกับเอกสาร "โฮสต์ที่รู้จัก" หรือไม่?

ตอนนี้คุณควรจะสามารถเชื่อมต่อกับเว็บไซต์และหรือเซิร์ฟเวอร์ของคุณได้อีกครั้ง

คุณอาจไม่จำเป็นต้องใช้แอป SSH Config Editor บ่อยนัก ดังนั้นฉันไม่แนะนำให้ตรึงแอปนั้นไว้ที่ Dock เพียงปล่อยให้มันติดตั้งในบางครั้งเมื่อคุณได้รับข้อผิดพลาดในการเชื่อมต่อ

ตัวเลือกที่ 2: แก้ไขไฟล์ known_hosts จากเทอร์มินัล

ตัวเลือกที่สองคือการล้างรายการจากไฟล์ known_hosts ของคุณโดยใช้เทอร์มินัล ทำตามขั้นตอนด้านล่าง

ขั้นตอนที่ 1

เปิดแอพเทอร์มินัล วิธีที่เร็วที่สุดคือการเปิด Spotlight และค้นหา "terminal" หรือคุณสามารถค้นหาได้ใน “ยูทิลิตี้ → สถานีปลายทาง”

ขั้ว Mac
ขั้ว Mac

ขั้นตอนที่ 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" คลิก "เข้าสู่"

Regedit
Regedit

ขั้นตอนที่ 2

เรียกดูโฟลเดอร์รีจิสทรีต่อไปนี้:

 HKEY_CURRENT_USER\SoftWare\SimonTatham\PuTTY\SshHostKeys
ตัวแก้ไขรีจิสทรี SshHostKeys
ตัวแก้ไขรีจิสทรี SshHostKeys

ขั้นตอนที่ 3

ภายในโฟลเดอร์ "SshHostKeys" ให้ลบรายการที่มีปัญหาออก หากคุณไม่แน่ใจว่าจะเลือกอันไหน ให้ค้นหาที่อยู่ IP เก่าและปัจจุบันของคุณ อีกทางเลือกหนึ่งก็คือการลบรายการทั้งหมด

คลิก "ใช่" เมื่อคุณได้รับข้อความแจ้งต่อไปนี้:

การลบค่ารีจิสทรีบางค่าอาจทำให้ระบบไม่เสถียร คุณแน่ใจหรือไม่ว่าต้องการลบค่านี้อย่างถาวร

ปิดตัวแก้ไขรีจิสทรี ตอนนี้คุณควรจะสามารถเชื่อมต่อกับเว็บไซต์และหรือเซิร์ฟเวอร์ของคุณได้อีกครั้ง

สรุป

การทำงานข้ามข้อผิดพลาดเช่นนี้เป็นเรื่องน่ารำคาญเสมอ คุณคิดว่าตอนนี้พวกเขาจะมีวิธีที่ง่ายกว่าในระบบปฏิบัติการเพื่อแก้ไขปัญหาเหล่านี้ สำหรับตอนนี้ เราจะต้องหันไปใช้กระบวนการแก้ไขปัญหาทีละขั้นตอนของเรา

หวังว่าตอนนี้คุณได้เชื่อมต่ออีกครั้งและกลับมาทำงานอีกครั้ง! หากสิ่งนี้มีประโยชน์หรือคุณมีปัญหา แสดงความคิดเห็นด้านล่าง