FTP vs SFTP ต่างกันอย่างไร แบบไหนปลอดภัยกว่า

รหัสผ่าน FTP อาจถูกดักฟังได้ระหว่างทาง มาดูกันว่า SFTP ป้องกันอย่างไร

FTP vs SFTP ต่างกันอย่างไร แบบไหนปลอดภัยกว่า FTP

ความแตกต่างระหว่าง FTP และ SFTP คืออะไร?

FTP (File Transfer Protocol) และ SFTP (SSH File Transfer Protocol) ต่างกันในเรื่องความปลอดภัยของข้อมูลการโอนย้ายไฟล์ FTP เป็นโปรโตคอลเก่าที่ไม่มีการเข้ารหัส (Unencrypted) ซึ่งหมายความว่าสิ่งที่ส่งผ่าน FTP รวมถึงชื่อผู้ใช้ รหัสผ่าน และเนื้อหาไฟล์ทั้งหมด ส่งไปบนอินเทอร์เน็ตแบบปกติ ใครที่ได้เข้าถึงการรับส่งข้อมูล (Intercept) ก็สามารถดูข้อมูลนั้นได้ทั้งหมด ในขณะที่ SFTP เป็นโปรโตคอลที่มีการเข้ารหัส (Encrypted) ทำให้ข้อมูลต่างหากได้รับการป้องกัน ถึงแม้มีคนดักฟัง ก็จะเห็นแต่เพียงรหัสที่ปกปิดไว้ไม่สามารถอ่านได้

สรุปความแตกต่าง:

ความเสี่ยงด้านความปลอดภัยของ FTP

ใช้ FTP โดยไม่มีการเข้ารหัส นั้นเสี่ยงต่อการโจมตีหลายประการ:

1. การดักฟังรหัสผ่าน (Packet Sniffing)

ผู้โจมตีสามารถใช้เครื่องมือเฉพาะทางที่เรียกว่า "Packet Sniffer" เพื่อดักฟังข้อมูลที่ส่งผ่านอินเทอร์เน็ต เมื่อคุณเชื่อมต่อ FTP คุณส่งชื่อผู้ใช้และรหัสผ่านแบบไม่มีการเข้ารหัส ผู้โจมตีก็สามารถจับข้อมูลนี้ได้ทันที จากนั้นเขาสามารถใช้ข้อมูลนี้เข้าถึง Hosting ของคุณเองได้

2. การแทรกแซงการถ่ายโอนไฟล์ (Man-in-the-Middle Attack)

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

3. การเข้าถึงโดยไม่ได้รับอนุญาต (Unauthorized Access)

เมื่อผู้โจมตีได้รับรหัสผ่าน FTP เขาสามารถเข้าถึง Hosting ของคุณและแก้ไขไฟล์เว็บไซต์ได้ตามต้องการ ลบไฟล์ เปลี่ยนแปลงเนื้อหา หรือติดตั้ง Backdoor เพื่อให้มีการเข้าถึงถาวร

ทำไม SFTP ปลอดภัยกว่า FTP?

SFTP ใช้การเข้ารหัส End-to-End ซึ่งหมายความว่า:

วิธีตรวจสอบว่า Hosting รองรับ SFTP หรือไม่

ไม่ใช่ Hosting Provider ทั้งหมดจะเปิดใช้งาน SFTP ตามค่าเริ่มต้น บางแห่งอาจปิดทำให้ผู้ใช้ต้องขอเปิดเพิ่มเติม ลองตรวจสอบดูเหล่านี้:

วิธีที่ 1: ตรวจสอบใน cPanel FTP Accounts

เมื่อไปที่ cPanel และเลือก FTP Accounts ให้ดูหน้า FTP Account ของคุณ จะมีบริเวณแสดง Connection Information ที่บอกชื่อ Server หรือ Host ส่วนใหญ่ Hosting Provider ปกติจะบอกว่า Server นี้ใช้ Port ไหน สำหรับ FTP หรือ SFTP ตัวอย่าง:

วิธีที่ 2: ติดต่อ Hosting Provider

ถ้าไม่แน่ใจ ให้ติดต่อทีม Support ของ Hosting Provider ของคุณแล้วถาม "Do you support SFTP and on which port?" หรือในภาษาไทย "Hosting ของคุณสนับสนุน SFTP หรือไม่ และ SFTP ใช้ Port ไหน?" ส่วนใหญ่ Hosting Provider ยุคใหม่ทั้งหมดรองรับ SFTP อยู่แล้ว

วิธีที่ 3: ทดสอบด้วย FileZilla

ลองตั้งค่า FileZilla โดยเปลี่ยน Port เป็น 22 และเลือก Protocol เป็น SFTP แล้วกด Connect ถ้าเชื่อมต่อสำเร็จ แสดงว่า Hosting รองรับ SFTP

เมื่อใดควรใช้ FTP และเมื่อใดควรใช้ SFTP?

ใช้ SFTP เมื่อ:

ใช้ FTP เมื่อ:

วิธีตั้งค่าใช้ SFTP ใน FileZilla

ถ้า Hosting รองรับ SFTP ให้ทำตามขั้นตอนนี้:

  1. เปิด FileZilla
  2. คลิก File → Site Manager
  3. สร้าง Site ใหม่หรือแก้ไขที่มีอยู่
  4. ที่ด้านขวา หาตัวเลือก Protocol แล้วเปลี่ยนจาก "FTP" เป็น "SFTP"
  5. ใส่ Host (เช่น sftp.yourdomain.com หรือ ftp.yourdomain.com)
  6. ใส่ Port เป็น 22 (ค่าเริ่มต้นของ SFTP)
  7. ใส่ Username และ Password
  8. คลิก Connect
Tip: เมื่อเชื่อมต่อ SFTP ครั้งแรก FileZilla อาจแสดง "Unknown server key" ให้คลิก "OK" หรือ "Accept" เพื่อจดจำเซิร์ฟเวอร์นี้ ครั้งต่อไปจะไม่ขึ้นอีก

ตรวจสอบว่า SFTP เชื่อมต่อได้ถูกต้อง

หลังจากตั้งค่า SFTP แล้ว ให้ทดสอบด้วยวิธีต่อไปนี้:

# 1. เพิ่มไฟล์ Test ใน FileZilla ด้วย SFTP
# ลองอัพโหลดไฟล์ชื่อ test.txt เข้า public_html

# 2. ตรวจสอบไฟล์ใน cPanel File Manager
# ไปที่ cPanel → File Manager → public_html
# ดูว่า test.txt อยู่ที่นั่นหรือไม่

# 3. เช็ค Transfer log ใน FileZilla
# ที่ด้านล่าง (Transfer Queue) ดู Messages tab
# ข้อความควรแสดง "Command: SFTP" แสดงว่าใช้ SFTP จริง

# 4. ดาวน์โหลดไฟล์จาก SFTP ทดสอบ
# ลองดาวน์โหลดไฟล์ config ไฟล์ใดก็ได้ เพื่อให้แน่ใจว่าการอ่านไฟล์ทำงาน
Tip: ในส่วน "Message" ของ Transfer Queue จะแสดงสถานะการเชื่อมต่อ ถ้าเห็นข้อความเกี่ยวกับการเข้ารหัส (Encryption, Cipher) แสดงว่า SFTP ทำงานถูกต้อง

แก้ปัญหาที่พบบ่อย

Error: "Connection refused" เมื่อเชื่อมต่อ SFTP Port 22

แสดงว่าเซิร์ฟเวอร์ไม่รองรับ SFTP ที่ Port 22 หรือ Firewall บล็อก Port 22

Error: "Unknown server key" หรือ "Server key is unknown"

เป็นเรื่องปกติเมื่อเชื่อมต่อ SFTP ครั้งแรก ระบบจะถามว่า "คุณแน่ใจหรือว่าเซิร์ฟเวอร์นี้คือแท้จริง" เพื่อป้องกัน Man-in-the-Middle Attack

วิธีแก้: คลิก "OK" หรือ "Accept" FileZilla จะจดจำเซิร์ฟเวอร์นี้ ครั้งต่อไปจะไม่ขึ้นอีก

Error: "Permission denied" หรือ "Cannot upload file via SFTP"

อาจเพราะสิทธิ์ในการเข้าถึงไฟล์ไม่พอ หรือโฟลเดอร์ที่อัพโหลดไปมีการ Lock

Error: "SFTP ช้ากว่า FTP"

เป็นเรื่องปกติ SFTP ช้ากว่า FTP เล็กน้อยเพราะต้องเข้ารหัส แต่ความแตกต่างมักจะไม่เห็นได้ชัดเจนในการใช้งานปกติ

วิธีแก้: ยอมรับความแตกต่างนี้ เพราะความปลอดภัยสำคัญกว่า ความเร็วที่เพิ่มขึ้นเล็กน้อย

Error: "ทุก Connection เก่า (FTP) ไม่ใช้ได้หลังจากเปิด SFTP"

ถ้า Hosting Provider เปลี่ยนให้ FTP ไม่ทำงาน เพื่อบังคับให้ใช้ SFTP ทั้งหมด Connection เก่าจะหายไป

วิथี แก้: ลบ Site เก่าใน FileZilla และสร้าง Site ใหม่ด้วย SFTP Protocol


คำถามที่พบบ่อย

Q: ถ้าเว็บไซต์อยู่บน Hosting เก่าที่ไม่รองรับ SFTP ต้องทำยังไง?

A: ถ้า Hosting ไม่รองรับ SFTP ให้ใช้ FTP ก่อน พอเวลาเหมาะสม ลองติดต่อ Hosting Provider ขอให้เปิด SFTP ถ้ายังไม่เปิด อีกทางหนึ่งคือย้ายไป Hosting Provider ใหม่ที่รองรับ SFTP ตั้งแต่ต้น ซึ่งเป็นการลงทุนด้านความปลอดภัยของเว็บไซต์ของคุณ

Q: SFTP ใช้ Password เดียวกับ FTP ได้หรือไม่?

A: ใช่ SFTP และ FTP ใช้ชื่อผู้ใช้และรหัสผ่านเดียวกัน ความแตกต่างคือในวิธีการ Encrypt ข้อมูลเมื่อส่ง ตัว Password เองยังเป็นอันเดียวกัน เพียงแค่การส่งข้อมูลระหว่างคอมพิวเตอร์และเซิร์ฟเวอร์ไป SFTP จะเข้ารหัสเพิ่มเติม

Q: ต้องจ่ายเงินเพิ่มเติมเพื่อใช้ SFTP หรือไม่?

A: ไม่ SFTP เป็น Feature บนเซิร์ฟเวอร์ที่ Hosting Provider ส่วนใหญ่รองรับโดยไม่เสียค่าเพิ่มเติม คุณเพียงแค่ขอให้ Support เปิด SFTP ก็ได้ หากพวกเขาปฏิเสธ นั่นอาจเป็นสัญญาณว่า Hosting Provider ไม่ได้ดี ควรพิจารณาย้ายไป Provider อื่น