Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> Linux

แก้ไขข้อผิดพลาด 'SSH could not resolve hostname' อย่างรวดเร็ว

บางครั้ง SSH แจ้งว่าไม่สามารถ resolve hostname ได้ เมื่อเจอข้อผิดพลาดนี้ ให้ตรวจสอบก่อนว่าเชื่อมต่อเครือข่ายอยู่ ผู้ใช้ wireless ตรวจสอบสัญญาณเพียงพอหรือไม่ การขาดการเชื่อมต่อเป็นสาเหตุหลัก (มากกว่าการพิมพ์ผิด)

ถ้าเชื่อมต่อแน่นอน ต่อไปตรวจสอบ typo: อาจพิมพ์ IP หรือ resource locator ผิด SSH ตรวจสอบว่าคุณเชื่อมต่อไปที่ทรัพยากรที่ถูกต้อง นอกจากนี้ไฟล์ hosts อาจชี้ SSH ไปที่ผิด

วิธีที่ 1: แก้คำสั่ง hostname ที่ผิดรูปแบบ

สมมติไม่ได้พิมพ์ผิดแบบ s sh หรือ ss h แทน ssh คุณอาจเขียน hostname command ผิด SSH คาดหวังรูปแบบ ssh user@NAME ไม่ใช่รูปแบบอื่น เปิดเทอร์มินัลด้วยสิทธิ์ที่เหมาะสม (โดยทั่วไป user ธรรมดาเพียงพอ ไม่ต้อง root)

เปิดเทอร์มินัล: Ctrl+Alt+T หรือ Super+T (Xfce4) หรือค้นหา Terminal ใน Dash/เมนู/ระบบเครื่องมือ Ubuntu Server/Red Hat ไม่มี GUI: Ctrl+Alt+F1-F6 เข้าคอนโซลเสมือน แล้วล็อกอิน

ที่พรอมต์ ให้พิมพ์คำสั่ง ssh ในรูปแบบที่ถูกตัด ตัวอย่าง: ssh root@myPlace (ถ้ามี hostname myPlace ในเครือข่าย) หรือ ssh root@##.#.#.## (แทน # ด้วยเลข IP)

บางคนเขียน root@server ซึ่งจะได้ข้อผิดพลาด:

ssh: Could not resolve hostname server: Name or service not known

ควรจดจำว่า ssh user@server คือรูปแบบที่ถูกต้องเสมอ

วิธีที่ 2: แก้ไขไฟล์ hosts

ความเสียหายของไฟล์ hosts ก็ทำให้ resolve hostname ไม่ได้ SSH แจ้งเตือนแบบเดียวกัน เปิดไฟล์ hosts ต้องมี root access จากเทอร์มินัลข้างต้น: พิมพ์ sudo nano /etc/hosts (หรือ vi) จะขอรหัสผ่าน

ถ้าทำงานในเดสก์ทอป: เปิด command line (Super+R หรือ Alt+F2 หรือ Dash) พิมพ์ gksu gedit /etc/hosts (GTK+) หรือ kdesu kate /etc/hosts (KDE Qt) อาจใช้ gvim, leafpad, mousepad แทนได้

โหลดไฟล์ hosts แล้ว ตรวจสอบด้านบน ต้องมี 2 บรรทัดนี้:

127.0.0.1 localhost

127.0.1.1 YourHostName

YourHostName = hostname จริงของเครื่อง ควรมีบรรทัด IPv6 ด้วย:

::1 ip6-localhost ip6-loopback

fe00::0 ip6-localnet

ff00::0 ip6-mcastprefix

ff02::1 ip6-allnodes

ff02::2 ip6-allrouters

เครือข่าย IPv4 only: ต้องการแค่ 2 บรรทัดแรก แต่โลกกำลังย้ายไป IPv6 ดิสโตรควรตั้งค่าให้แล้ว แต่อาจเสียหายจากแพ็กเกจหรือข้อผิดพลาดผู้ใช้

ถ้าใช้ text editor แบบกราฟิก ที่ title bar เขียน แสดงว่า save ไม่ได้ (ไม่ได้ใช้ gksu/kdesu ให้ถูกต้อง) อาจมีบรรทัดเพิ่มหลัง ff02::2 ไม่ต้องแก้ ยกเว้นเกี่ยวกับโค้ดข้างต้น ต้อง comment บรรทัดซ้ำ (เพิ่ม # นำหน้า) แต่ละบรรทัดต้องมีครั้งเดียว ห้ามมี multiple assignments ไม่งั้น SSH จะเอาค่าสุดท้ายซึ่งอาจผิด

บันทึกไฟล์ ปิดทันที (อย่าทำการเปลี่ยนแปลงอื่น) ลอง ssh ใหม่ ดูที่วิธีที่ 1 หายังปัญหา รีบูตเครื่อง ควรไม่มีปัญหา SSH อีกต่อไป