🇯🇵 日本語 | 🇺🇸 English | 🇪🇸 Español | 🇵🇹 Português | 🇹🇭 ไทย | 🇨🇳 中文

เชื่อมต่อ WinSCP ไม่ได้! คู่มือฉบับสมบูรณ์เกี่ยวกับสาเหตุและวิธีแก้ไข【สำหรับมือใหม่】

"WinSCP" เป็นเครื่องมือที่ขาดไม่ได้สำหรับการสร้างเว็บไซต์และการจัดการเซิร์ฟเวอร์ สะดวกมากสำหรับการอัปโหลดหรือดาวน์โหลดไฟล์ไปยังเซิร์ฟเวอร์ใช่ไหมครับ แต่เคยมีประสบการณ์ที่พอจะใช้งานแล้วกลับ "เชื่อมต่อไม่ได้..." บ้างไหมครับ?

ถึงแม้จะมีข้อความแสดงข้อผิดพลาดปรากฏขึ้น แต่ก็เต็มไปด้วยศัพท์เทคนิคที่ไม่เข้าใจ จนทำให้หัวขาวโพลนไปหมด...😱

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


มาเริ่มจากพื้นฐาน! ตรวจสอบข้อมูลการเชื่อมต่ออีกครั้ง

"ความผิดพลาดเล็กๆ น้อยๆ" เกิดขึ้นได้กับทุกคน ก่อนที่จะคิดถึงสาเหตุที่ซับซ้อน มาตรวจสอบข้อมูลการเชื่อมต่อพื้นฐานที่สุดกันก่อนว่าถูกต้องหรือไม่ บ่อยครั้งที่นี่คือสาเหตุของปัญหาครับ

หน้าจอตั้งค่าการเข้าสู่ระบบของ WinSCP

ลองมาดูหน้าจอนี้อีกครั้งตอนที่คุณเปิด WinSCP นะครับ

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


ข้อความแสดงข้อผิดพลาดที่พบบ่อย สาเหตุ และวิธีแก้ไข

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

1. "ข้อผิดพลาดเครือข่าย: การเชื่อมต่อหมดเวลา" (Network error: Connection timed out)

นี่คือสถานการณ์ที่ WinSCP พยายามติดต่อเซิร์ฟเวอร์แล้ว แต่ไม่ได้รับการตอบกลับภายในเวลาที่กำหนด

ข้อผิดพลาดการหมดเวลาของ WinSCP

🤔 สาเหตุที่เป็นไปได้

🚀 วิธีแก้ไข

  1. ก่อนอื่น กลับไปที่ "พื้นฐาน" ที่กล่าวไว้ข้างต้นและตรวจสอบ ชื่อโฮสต์และหมายเลขพอร์ต อีกครั้ง
  2. ในกรณีของเซิร์ฟเวอร์เช่า ให้ตรวจสอบในแผงควบคุมว่ามีการตั้งค่า "จำกัดที่อยู่ IP" หรือ "จำกัดที่อยู่ IP จากต่างประเทศ" หรือไม่ หากมีการตั้งค่าไว้และที่อยู่ IP ของคุณไม่ได้รับอนุญาต คุณจะต้องเพิ่มเข้าไปในรายการที่อนุญาต
  3. ลองปิดโปรแกรมรักษาความปลอดภัยของ PC ชั่วคราวแล้วลองเชื่อมต่อดู หากเชื่อมต่อได้ แสดงว่าคุณต้องตั้งค่าในโปรแกรมรักษาความปลอดภัยเพื่ออนุญาตการสื่อสารของ WinSCP
  4. หากตรวจสอบทั้งหมดแล้วยังไม่ได้ผล อาจเป็นไปได้ว่ามีปัญหาที่ตัวเซิร์ฟเวอร์เอง ลองติดต่อผู้ดูแลเซิร์ฟเวอร์

2. "โฮสต์ '...' ไม่มีอยู่จริง" (Host '...' does not exist)

นี่เป็นข้อผิดพลาดที่ค่อนข้างเข้าใจง่าย หมายความว่า "ไม่พบชื่อโฮสต์ (ที่อยู่เซิร์ฟเวอร์) ที่ป้อนเข้ามา"

🤔 สาเหตุที่เป็นไปได้

🚀 วิธีแก้ไข

  1. ตรวจสอบข้อมูลชื่อโฮสต์ที่ป้อนอย่างละเอียด วิธีที่แน่นอนที่สุดคือการคัดลอกและวางข้อมูลจากอีเมลที่ได้รับจากเซิร์ฟเวอร์หรือข้อมูลที่ระบุในหน้าจอการจัดการโดยไม่ผิดเพี้ยนแม้แต่ตัวอักษรเดียว
  2. ในกรณีที่เพิ่งจดทะเบียนโดเมน (เช่น: example.com) อาจใช้เวลาสักพักเพื่อให้ข้อมูล DNS แพร่กระจายไปทั่วอินเทอร์เน็ต (อาจใช้เวลาหลายชั่วโมงถึง 72 ชั่วโมง) ลองอีกครั้งหลังจากผ่านไปสักพัก

3. "การเข้าถึงถูกปฏิเสธ" / "การยืนยันตัวตนล้มเหลว" (Access denied / Authentication failed)

สามารถไปถึงเซิร์ฟเวอร์ได้แล้ว แต่ถูกปฏิเสธที่หน้าประตูว่า "คุณเป็นใคร? ไม่อนุญาต" มีความเป็นไปได้สูงว่ามีปัญหากับข้อมูลการยืนยันตัวตน (ID, รหัสผ่าน, คีย์)

ข้อผิดพลาดการยืนยันตัวตนล้มเหลวของ WinSCP

🤔 สาเหตุที่เป็นไปได้

🚀 วิธีแก้ไข

  1. ตรวจสอบชื่อผู้ใช้และรหัสผ่านอีกครั้ง:
    • ตัวพิมพ์ใหญ่และตัวพิมพ์เล็กมีความแตกต่างกัน Password และ password ถือเป็นคนละตัว
    • ตรวจสอบให้แน่ใจว่าไม่ได้สับสนระหว่างเลข `0` กับตัวอักษร `O` หรือเลข `1` กับตัวอักษร `l`
    • ตามที่กล่าวไว้ข้างต้น แนะนำให้พิมพ์ในโปรแกรมแก้ไขข้อความก่อนแล้วค่อยคัดลอกและวาง
  2. จุดตรวจสอบสำหรับการยืนยันตัวตนด้วยคีย์ (SFTP):

    การยืนยันตัวตนด้วยคีย์เป็นวิธีการยืนยันตัวตนโดยใช้ไฟล์คู่ที่เรียกว่า "คีย์ส่วนตัว" และ "คีย์สาธารณะ" แทนรหัสผ่าน ซึ่งเป็นวิธีการเชื่อมต่อที่ปลอดภัยกว่าและแนะนำให้ใช้

    1. ในหน้าจอเข้าสู่ระบบของ WinSCP ให้กดปุ่ม "Advanced..." จากนั้นเลือก "SSH" > "Authentication" จากเมนูด้านซ้าย
    2. ในช่อง "Private key file" ให้ตรวจสอบว่าได้ระบุไฟล์ .ppk ที่ถูกต้องหรือไม่ .ppk คือไฟล์คีย์ส่วนตัวในรูปแบบที่ใช้โดย WinSCP และ PuTTY
    3. จำเป็นต้องตรวจสอบว่าคีย์สาธารณะที่เป็นคู่กันได้ถูกติดตั้งอย่างถูกต้องบนฝั่งเซิร์ฟเวอร์หรือไม่ โดยปกติแล้ว จะต้องเขียนเนื้อหาของคีย์สาธารณะลงในไฟล์ /home/ชื่อผู้ใช้/.ssh/authorized_keys บนเซิร์ฟเวอร์ หากไม่แน่ใจในขั้นตอนนี้ ควรให้ผู้ดูแลเซิร์ฟเวอร์ตรวจสอบ
    4. หากคุณตั้งค่า Passphrase (รหัสผ่านสำหรับปลดล็อกคีย์) ไว้สำหรับคีย์ส่วนตัว จะมีการขอให้ป้อนข้อมูลนั้นด้วย โปรดระวังการพิมพ์ผิดเช่นเดียวกับรหัสผ่าน

4. "เซิร์ฟเวอร์ปฏิเสธคีย์ส่วนตัวของเรา" (Server refused our key)

นี่เป็นข้อผิดพลาดเฉพาะเมื่อใช้การยืนยันตัวตนด้วยคีย์ เป็นสถานการณ์ที่ WinSCP ยื่นคีย์ส่วนตัวไปแล้วถามว่า "เข้าด้วยคีย์นี้ได้ไหม?" แต่ฝั่งเซิร์ฟเวอร์ปฏิเสธว่า "ไม่รู้จักคีย์นี้"

🤔 สาเหตุที่เป็นไปได้

🚀 วิธีแก้ไข

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

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

ls -la ~/.ssh/authorized_keys

สิทธิ์ที่ถูกต้องคือ 600 (-rw-------) ซึ่งหมายความว่ามีเพียงเจ้าของเท่านั้นที่สามารถอ่านและเขียนได้ หากเป็นค่าอื่น (เช่น 644) เซิร์ฟเวอร์จะไม่ยอมอ่านคีย์ด้วยเหตุผลด้านความปลอดภัย

[สำหรับขอให้ตรวจสอบ] คำสั่งตรวจสอบสิทธิ์ของไดเรกทอรี .ssh

ls -ld ~/.ssh

สิทธิ์ของไดเรกทอรี .ssh เองต้องเป็น 700 (drwx------) หากต้องการตั้งค่าใหม่ ให้ใช้คำสั่งต่อไปนี้ แต่ถ้าไม่มั่นใจในการดำเนินการ ควรขอให้ผู้ดูแลระบบเป็นผู้ดำเนินการเสมอ

[สำหรับเปลี่ยนการตั้งค่า] คำสั่งเปลี่ยนสิทธิ์ (สำหรับผู้ใช้ขั้นสูง)

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

それでもแก้ไขไม่ได้… ปราการด่านสุดท้าย "ฟังก์ชันบันทึก Log"

หากลองวิธีที่แนะนำมาทั้งหมดแล้วยังเชื่อมต่อไม่ได้ ฟังก์ชัน "บันทึก Log" ของ WinSCP คือความหวังสุดท้าย

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

  1. คลิกปุ่ม "Advanced..." บนหน้าจอเข้าสู่ระบบ
  2. ในหน้าต่างที่เปิดขึ้นมา ให้ติ๊กช่อง "Advanced options" ที่มุมล่างซ้าย
  3. จะมีรายการ "Logging" ปรากฏขึ้นในเมนูด้านซ้าย ให้คลิกที่รายการนั้น
  4. ในช่อง "Log file" ให้ป้อนตำแหน่งและชื่อไฟล์ที่จะบันทึก Log (เช่น: C:\Users\YourUser\Desktop\winscp.log) การเลือกตำแหน่งบันทึกผ่านปุ่ม "..." จะทำได้ง่าย
  5. ตั้งค่า "Log level" เป็น "Normal" หรือ "Debug 2" เพื่อให้ได้ข้อมูลที่ละเอียดขึ้น
  6. ลองเข้าสู่ระบบหนึ่งครั้งด้วยการตั้งค่านี้ หากล้มเหลว ไฟล์ Log จะถูกสร้างขึ้นในตำแหน่งที่ระบุ

หน้าจอตั้งค่าการบันทึก Log ของ WinSCP

เนื้อหาในไฟล์ Log อาจเป็นเรื่องทางเทคนิค แต่ถ้าดูดีๆ บริเวณข้อความแสดงข้อผิดพลาด จะพบคำสำคัญที่เคยเห็นมาแล้ว เช่น "Access denied" หรือ "Connection failed" การให้ไฟล์ Log นี้กับผู้ดูแลเซิร์ฟเวอร์จะช่วยให้การแก้ปัญหารวดเร็วยิ่งขึ้นมาก


สรุป

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

หากพบปัญหา ให้ลองใช้บทความนี้เป็นแนวทางและตรวจสอบตามขั้นตอนต่อไปนี้อย่างใจเย็น:

  1. ตรวจสอบข้อมูลพื้นฐานอีกครั้ง: ชื่อโฮสต์, โปรโตคอล, หมายเลขพอร์ต, ชื่อผู้ใช้, รหัสผ่าน
  2. ตรวจสอบข้อความแสดงข้อผิดพลาด: เป็นการหมดเวลา, ไม่พบโฮสต์, หรือการยืนยันตัวตนล้มเหลว
  3. ตรวจสอบการยืนยันตัวตนด้วยคีย์ (กรณี SFTP): คู่คีย์ส่วนตัวและคีย์สาธารณะถูกต้องหรือไม่, สิทธิ์ถูกต้องหรือไม่
  4. รับ Log: หากแก้ไขไม่ได้จริงๆ ให้บันทึก Log โดยละเอียดแล้วปรึกษาผู้เชี่ยวชาญหรือผู้ดูแลระบบ

หากตรวจสอบทีละขั้นตอนอย่างละเอียด จะต้องพบหนทางแก้ไขอย่างแน่นอน สู้ๆ ครับ! 🚀