วิธีแก้ไข: การเชื่อมต่อถูกปฏิเสธโดยพอร์ต 22 Debian/Ubuntu

How Fix Connection Refused Port 22 Debian Ubuntu



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

บันทึก: คำสั่งที่กล่าวถึงในที่นี้ได้รับการทดสอบบน Ubuntu 20.04 LTS แล้ว คำสั่งเดียวกันนี้ใช้ได้กับระบบเดเบียนเช่นกัน







แก้ไขข้อผิดพลาดการปฏิเสธการเชื่อมต่อ

นี่เป็นข้อผิดพลาดในการเชื่อมต่อที่คุณอาจพบขณะเชื่อมต่อกับระบบระยะไกลผ่าน SSH





ปฏิบัติตามแนวทางแก้ไขด้านล่างทีละขั้นตอนเพื่อแก้ไขข้อผิดพลาดการเชื่อมต่อถูกปฏิเสธ





ตรวจสอบให้แน่ใจว่าได้ติดตั้ง OpenSSH แล้ว

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

ขั้นแรก คุณจะต้องตรวจสอบให้แน่ใจว่าได้ติดตั้งเซิร์ฟเวอร์ OpenSSH บนระบบที่คุณพยายามเข้าถึงผ่าน SSH ในการตรวจสอบว่ามีการติดตั้ง OpenSSH หรือไม่ ให้ออกคำสั่งต่อไปนี้ใน Terminal ของเซิร์ฟเวอร์เป้าหมาย:



$sudoรายการ apt--ติดตั้งแล้ว | กริปopensh-เซิร์ฟเวอร์

คำสั่งนี้โดยทั่วไปจะกรองคำว่า openssh-server จากรายการแพ็คเกจที่ติดตั้ง หากคุณได้รับเอาต์พุตที่คล้ายกันต่อไปนี้ แสดงว่ามีการติดตั้งเซิร์ฟเวอร์ OpenSSH ในทางกลับกัน หากคุณไม่ได้รับเอาต์พุต แสดงว่า OpenSSH หายไปบนเซิร์ฟเวอร์เป้าหมาย

ในกรณีที่ไม่ได้ติดตั้งบนเซิร์ฟเวอร์เป้าหมาย คุณสามารถติดตั้งโดยใช้คำสั่งต่อไปนี้เป็น sudo:

$sudoฉลาดติดตั้งopensh-เซิร์ฟเวอร์

จากนั้นพิมพ์รหัสผ่าน sudo และเมื่อระบบขอยืนยัน ให้กด 'y' เมื่อติดตั้งแล้ว ให้ยืนยันโดยใช้คำสั่งเดียวกัน

$sudoรายการ apt--ติดตั้งแล้ว | กริปopensh-เซิร์ฟเวอร์

ตรวจสอบบริการ SSH

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

ดังนั้นจึงจำเป็นต้องตรวจสอบว่าบริการ OpenSSH กำลังทำงานอยู่หรือไม่โดยใช้คำสั่งต่อไปนี้ใน Terminal:

$sudoบริการsshสถานะ

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

ในทางกลับกัน ถ้าคุณได้รับ ไม่ทำงาน (ตาย), นั่นหมายความว่าบริการไม่ทำงาน . คุณสามารถเรียกใช้บริการ OpenSSH โดยใช้คำสั่งต่อไปนี้เป็น sudo ใน Terminal:

$sudoบริการsshเริ่ม

ในการเริ่มบริการใหม่ ให้ใช้คำสั่งต่อไปนี้:

$sudoบริการsshเริ่มต้นใหม่

ตรวจสอบพอร์ตการรับฟังเซิร์ฟเวอร์ SSH

อีกสาเหตุหนึ่งที่ทำให้ได้รับข้อผิดพลาดการปฏิเสธการเชื่อมต่อคือเพราะคุณพยายามเชื่อมต่อกับพอร์ตที่ไม่ถูกต้อง ตัวอย่างเช่น หากเซิร์ฟเวอร์ได้รับการกำหนดค่าให้รับฟังบนพอร์ต 2244 และคุณกำลังพยายามเชื่อมต่อกับพอร์ตเริ่มต้น 22 ในกรณีนี้ คุณจะได้รับข้อผิดพลาดการเชื่อมต่อถูกปฏิเสธ

ก่อนลองเชื่อมต่อ คุณต้องตรวจสอบพอร์ตการรับฟังเซิร์ฟเวอร์ SSH หากเป็นพอร์ตเริ่มต้น (22) คุณสามารถเชื่อมต่อโดยใช้คำสั่งต่อไปนี้:

$ssh [ชื่อผู้ใช้]@[เซิร์ฟเวอร์ระยะไกล IP หรือชื่อโฮสต์]

หากเป็นพอร์ตอื่นที่ไม่ใช่พอร์ตเริ่มต้น คุณจะต้องเชื่อมต่อกับเซิร์ฟเวอร์ SSH โดยใช้พอร์ตนี้:

$ssh -NS [หมายเลขพอร์ต] [ชื่อผู้ใช้]@[ที่อยู่ IP]

เพื่อตรวจสอบว่าพอร์ตใดที่เซิร์ฟเวอร์ OpenSSH กำลังฟังอยู่ ใช้คำสั่งต่อไปนี้ใน Terminal:

$sudo netstat -ltnp | กริปsshd

คุณจะได้รับผลลัพธ์ที่คล้ายกับต่อไปนี้:

ในคอลัมน์ที่สาม คุณจะเห็นพอร์ตการรับฟังของเซิร์ฟเวอร์คือ 2244 ในกรณีนี้ คุณจะต้องเชื่อมต่อกับเซิร์ฟเวอร์ SSH โดยใช้พอร์ตนี้

$ssh -NS [2244] [ชื่อผู้ใช้]@[ที่อยู่ IP]

อนุญาต SSH ในไฟร์วอลล์

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

$sudoufw อนุญาตพอร์ต/tcp

ตัวอย่างเช่น หากเซิร์ฟเวอร์ SSH กำลังฟังพอร์ต 2244 คุณสามารถอนุญาตในไฟร์วอลล์ได้ดังนี้:

$sudoufw อนุญาต2244/tcp

โหลดไฟร์วอลล์ใหม่โดยใช้คำสั่งต่อไปนี้:

$sudoufw โหลดซ้ำ

เพื่อยืนยันว่ามีการเพิ่มกฎหรือไม่ ให้ตรวจสอบสถานะของไฟร์วอลล์โดยใช้คำสั่งต่อไปนี้ใน Terminal:

$sudoufw สถานะ

ผลลัพธ์ต่อไปนี้แสดงว่าพอร์ต 2244 ได้รับอนุญาตในไฟร์วอลล์

แก้ไขข้อขัดแย้งที่อยู่ IP ที่ซ้ำกัน

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

ติดตั้งยูทิลิตี้ arping บนระบบของคุณโดยใช้คำสั่งต่อไปนี้:

$sudoฉลาดติดตั้งarping

จากนั้น ping ที่อยู่ IP ของเซิร์ฟเวอร์ SSH

$ปิง <ที่อยู่ IP>

ในผลลัพธ์ หากคุณเห็นการตอบกลับจากที่อยู่ MAC มากกว่าหนึ่งรายการ แสดงว่ามี IP ที่ซ้ำกันทำงานอยู่บนระบบ ในกรณีนี้ ให้เปลี่ยนที่อยู่ IP ของเซิร์ฟเวอร์ SSH แล้วลองเชื่อมต่ออีกครั้งด้วยที่อยู่ IP ใหม่

นี่คือวิธีการแก้ไขข้อผิดพลาดการเชื่อมต่อถูกปฏิเสธโดยพอร์ต 22 ในระบบ Linux ในบทความนี้ เราได้อธิบายสองสามวิธีที่จะช่วยคุณในการแก้ไขข้อผิดพลาดการเชื่อมต่อที่ถูกปฏิเสธ