วิธีแก้ไขปัญหา SSH ติดอยู่ที่ “การสร้างการเชื่อมต่อกับเซิร์ฟเวอร์”
เผยแพร่แล้ว: 2025-12-21Secure Shell (SSH) เป็นองค์ประกอบที่สำคัญสำหรับการจัดการและดูแลเซิร์ฟเวอร์จากระยะไกล การติดอยู่ที่ข้อความ “กำลังสร้างการเชื่อมต่อกับเซิร์ฟเวอร์” ในไคลเอนต์ SSH ของคุณอาจทำให้หงุดหงิด โดยเฉพาะอย่างยิ่งหากคุณกำลังเผชิญกับสภาพแวดล้อมการใช้งานจริงหรือการกำหนดค่าที่ไวต่อเวลา ปัญหานี้อาจดูคลุมเครือ แต่มีสาเหตุที่เป็นไปได้หลายประการ ตั้งแต่การกำหนดค่าเครือข่ายผิดพลาดไปจนถึงปัญหา SSH daemon บนเซิร์ฟเวอร์เป้าหมาย การทราบวิธีแก้ปัญหาการเชื่อมต่อ SSH อย่างมีประสิทธิภาพจะช่วยประหยัดทั้งเวลาและความเครียดที่ไม่จำเป็น
TL;ดร
หากเซสชัน SSH ของคุณค้างอยู่ที่ “การสร้างการเชื่อมต่อกับเซิร์ฟเวอร์” ให้เริ่มต้นด้วยการตรวจสอบความพร้อมใช้งานของโฮสต์ปลายทางและการเชื่อมต่อเครือข่าย ยืนยันว่าบริการ SSH ทำงานบนปลายทางและรับฟังพอร์ตที่ถูกต้อง จากนั้นตรวจสอบไฟร์วอลล์ในเครื่อง ความละเอียด DNS หรือการตั้งค่า VPN ใช้การบันทึก SSH แบบละเอียด (-vvv) เพื่อข้อมูลเชิงลึกเพิ่มเติมระหว่างพยายามเชื่อมต่อ
1. ยืนยันการเชื่อมต่อเครือข่ายพื้นฐาน
ก่อนที่จะเจาะลึกการกำหนดค่าและไฟล์บันทึก ให้เริ่มต้นด้วยการตรวจสอบที่ง่ายที่สุด:
- ปิงเซิร์ฟเวอร์:ใช้ปิงเพื่อตรวจสอบว่าโฮสต์สามารถเข้าถึงได้
- Traceroute หรือ MTR:สิ่งนี้สามารถช่วยระบุได้ว่ามีบล็อกการเชื่อมต่อที่การข้ามเครือข่ายระหว่างคุณกับเซิร์ฟเวอร์ SSH หรือไม่
- Telnet หรือ Netcat:พยายามเข้าถึงพอร์ต 22 (หรือพอร์ต SSH แบบกำหนดเอง) เพื่อยืนยันว่าสามารถเข้าถึงได้:
telnet your.server.ip 22หรือnc -zv your.server.ip 22
หากเซิร์ฟเวอร์ไม่ตอบสนองต่อการ Ping หรือปฏิเสธพอร์ต SSH แสดงว่าโฮสต์หยุดทำงาน เครือข่ายกำลังบล็อกการรับส่งข้อมูล หรือ SSH ทำงานไม่ถูกต้องบนเซิร์ฟเวอร์
2. ใช้โหมด Verbose เพื่อรับข้อมูลเชิงลึก
SSH มีระดับการใช้คำฟุ่มเฟือยที่แตกต่างกันซึ่งสามารถช่วยระบุจุดที่เกิดความล่าช้าในกระบวนการเชื่อมต่อได้ ใช้ตัวเลือก-v,-vvหรือ-vvvเพื่อรับเอาต์พุตที่มีรายละเอียดเพิ่มเติม:
ssh -vvv [email protected]ตำแหน่งทั่วไปที่โหมด verbose ช่วย ได้แก่:
- กำลังตรวจสอบความละเอียด DNS
- การพิจารณาว่าความพยายามในการเชื่อมต่อหมดเวลาในขั้นตอนใดขั้นตอนหนึ่งหรือไม่
- การระบุข้อผิดพลาดในการแลกเปลี่ยนคีย์หรือการรับรองความถูกต้อง

3. การตั้งค่าไฟร์วอลล์และกลุ่มความปลอดภัย
หลายครั้งที่ไฟร์วอลล์หรือการตั้งค่าความปลอดภัยบนคลาวด์เป็นสาเหตุ คุณควรตรวจสอบทั้งฝั่งไคลเอ็นต์และฝั่งเซิร์ฟเวอร์:
- ไฟร์วอลล์ฝั่งไคลเอ็นต์:ตรวจสอบให้แน่ใจว่าอนุญาตการเชื่อมต่อขาออกบนพอร์ต 22 (หรือพอร์ต SSH ที่คุณกำหนดเอง)
- ไฟร์วอลล์ฝั่งเซิร์ฟเวอร์:เครื่องมือเช่นiptablesหรือufwอาจทำให้การรับส่งข้อมูล SSH ขาเข้าลดลง
- กลุ่มความปลอดภัยบนคลาวด์:ในสภาพแวดล้อม AWS, GCP หรือ Azure ให้ตรวจสอบว่ากลุ่มความปลอดภัยอนุญาต IP ของคุณและพอร์ตที่ถูกต้องหรือไม่
หากการเชื่อมต่อของคุณค้างที่ "กำลังสร้างการเชื่อมต่อ" อาจบ่งบอกว่าแพ็กเก็ตกำลังถูกทิ้งอย่างเงียบ ๆ แทนที่จะถูกปฏิเสธอย่างแข็งขัน
4. ตรวจสอบ SSH Daemon บนเซิร์ฟเวอร์
หากคุณมีสิทธิ์เข้าถึงเซิร์ฟเวอร์แบบอื่น (เช่น ผ่านคอนโซล การเข้าถึงแบบอนุกรม หรือเซสชันระยะไกลอื่น) ให้เข้าสู่ระบบโดยตรงและตรวจสอบบริการ SSH:
sudo systemctl status sshd sudo netstat -tulpn | grep sshสิ่งที่ต้องใส่ใจกับ:
- บริการนี้ทำงานอยู่หรือไม่?
- กำลังฟัง IP และพอร์ตที่คาดหวังหรือไม่
- มีการเปลี่ยนแปลงล่าสุดในไฟล์การกำหนดค่า SSH (โดยปกติคือ/etc/ssh/sshd_config) ที่อาจทำให้เกิดความล้มเหลวหรือไม่
หากเพิ่งกำหนดค่า SSH ใหม่หรือรีสตาร์ทไม่ถูกต้อง กระบวนการอาจหยุดทำงานหรือไม่ตอบสนองต่อการเชื่อมต่อขาเข้า
5. ปัญหาการแก้ไข DNS
หากคุณกำลังเชื่อมต่อโดยใช้ชื่อโฮสต์แทนที่จะเป็นที่อยู่ IP ตรวจสอบให้แน่ใจว่า DNS ได้รับการแก้ไขอย่างถูกต้อง:

nslookup your.server.domain dig your.server.domainปัญหาเกี่ยวกับการตั้งค่า DNS อาจทำให้การเชื่อมต่อ SSH ของคุณล่าช้าหรือหยุดชะงักหากชื่อโฮสต์ไม่สามารถแก้ไขได้ ตรวจสอบ/etc/resolv.confหรือการตั้งค่า DNS ในเราเตอร์หรือ VPN ของคุณด้วย
6. TCP Wrappers และข้อจำกัดตามโฮสต์
ใน Linux บางรุ่น ตัวห่อ TCP ซึ่งควบคุมผ่าน/etc/hosts.allowและ/etc/hosts.denyสามารถจำกัดการเข้าถึง SSH ได้:
- ตรวจสอบให้แน่ใจว่า
/etc/hosts.denyไม่มีบรรทัดเช่นsshd: ALL - อนุญาต IP ของคุณอย่างชัดเจนใน
/etc/hosts.allowด้วยsshd: your.ip.address
แม้ว่า TCP Wrapper จะเลิกใช้งานไปแล้วเป็นส่วนใหญ่ แต่ระบบเดิมอาจยังคงใช้งาน TCP Wrapper โดยไม่มีการระบุที่ชัดเจนในบันทึก
7. VPN หรือการแทรกแซงพร็อกซี
VPN และการตั้งค่าพร็อกซีบางอย่างอาจรบกวนการรับส่งข้อมูล SSH:
- ตรวจสอบว่า VPN ของคุณทำงานอยู่หรือไม่และกำหนดเส้นทางการรับส่งข้อมูลของคุณอย่างถูกต้อง
- หากใช้อุโมงค์แยก VPN ให้ตรวจสอบว่าการรับส่งข้อมูลไปยังเซิร์ฟเวอร์ SSH นั้นรวมอยู่ในทันเนลหรือไม่
- ลองปิดการใช้งาน VPN ชั่วคราวและเชื่อมต่อใหม่ผ่านการเข้าถึงอินเทอร์เน็ตโดยตรง
ในทำนองเดียวกัน พร็อกซีขององค์กรหรือเกตเวย์ที่จำกัดอาจทิ้งหรือจัดการแพ็กเก็ต SSH ส่งผลให้เซสชันแฮงค์
8. ปัญหาสำคัญ SSH และความล่าช้าในการตรวจสอบความถูกต้อง
แม้ว่าข้อผิดพลาดในการรับรองความถูกต้องมักจะส่งกลับข้อความ “Permission rejected” ที่ชัดเจน แต่บางครั้งความล่าช้าในการประมวลผลคีย์หรือการค้นหาคีย์ที่ได้รับอนุญาตก็อาจเลียนแบบการเชื่อมต่อที่ค้างอยู่ได้
- มีคีย์มากเกินไปในไดเร็กทอรี
~/.sshอาจทำให้การตรวจสอบสิทธิ์ช้าลง ใช้IdentitiesOnly yesใน~/.ssh/configเพื่อลดความพยายาม - กำหนดค่าคีย์ที่ระบุ:
ssh -i ~/.ssh/my_key user@host

9. ข้อจำกัดด้านโหลดเซิร์ฟเวอร์และทรัพยากร
เซิร์ฟเวอร์ที่มีการโหลดจำนวนมากอาจทำให้ช้าลงหรือบล็อกการเชื่อมต่อ SSH ใหม่ได้:
- ตรวจสอบ CPU, RAM หรือขีดจำกัดกระบวนการที่สูงบนเซิร์ฟเวอร์
- หากไม่สามารถเข้าถึงได้ผ่าน SSH ให้ใช้คอนโซลระบบคลาวด์เพื่อตรวจสอบสถานะของระบบ
สถานการณ์หน่วยความจำเหลือน้อยอาจทำให้sshdทำงานผิดปกติหรือหมดเวลาความพยายามในการเชื่อมต่อใหม่
10. ถูกแบนชั่วคราวโดย Fail2Ban หรือเครื่องมือที่คล้ายกัน
เครื่องมือรักษาความปลอดภัยเช่น Fail2Ban หรือ DenyHosts อาจบล็อก IP ที่ไม่ผ่านการรับรองความถูกต้องซ้ำแล้วซ้ำอีก ซึ่งอาจส่งผลให้การเชื่อมต่อเงียบค้าง:
- ตรวจสอบการแบน IP ใน
/var/log/fail2ban.logหรือบันทึกที่เกี่ยวข้อง - ไวท์ลิสต์ IP ของคุณเมื่อเป็นไปได้หรือเข้าถึงเซิร์ฟเวอร์จากเครือข่ายอื่น
บทสรุป
ปัญหาการเชื่อมต่อ SSH โดยเฉพาะอย่างยิ่งเมื่อติดอยู่ที่ “การสร้างการเชื่อมต่อกับเซิร์ฟเวอร์” อาจเกิดจากปัจจัยหลายประการตั้งแต่การตั้งค่าไฟร์วอลล์ในเครื่องไปจนถึงปัญหาประสิทธิภาพของเซิร์ฟเวอร์ระยะไกล วิธีการแก้ไขปัญหาที่มีระเบียบวินัยซึ่งเริ่มต้นจากการทดสอบการเชื่อมต่อขั้นพื้นฐานและดำเนินการไปจนถึงการบันทึกเชิงลึกและการตรวจสอบการกำหนดค่าถือเป็นสิ่งสำคัญ การใช้เครื่องมือ เช่น เอาต์พุต SSH แบบละเอียด การตรวจสอบบันทึกของระบบ การตรวจสอบ DNS และการทำให้แน่ใจว่าเซิร์ฟเวอร์ของคุณตอบสนองจะช่วยให้คุณสามารถแยกสาเหตุที่แท้จริงได้อย่างมีประสิทธิภาพ
ข้อควรจำ: ทดสอบการเปลี่ยนแปลงทีละน้อยและสำรองข้อมูลการกำหนดค่าใดๆ ที่คุณแก้ไข ในสภาพแวดล้อมที่มีความพร้อมใช้งานสูง การมีวิธีการจัดการนอกแบนด์ เช่น IPMI, คอนโซลอนุกรม หรือการเข้าถึงเซิร์ฟเวอร์หลัก ถือเป็นสิ่งสำคัญเมื่อ SSH ไม่ตอบสนอง
