กลับไปหน้าบล็อก
พฤษภาคม 23, 2026คู่มือ

วิธีตั้งค่า SFTP สำหรับถ่ายโอนไฟล์อย่างปลอดภัย

ใช้ OpenSSH สำหรับ SFTP upload ไปยัง VPS: สร้าง users, chroot jails และเชื่อมต่อด้วย FileZilla หรือ WinSCP

วิธีตั้งค่า SFTP สำหรับถ่ายโอนไฟล์อย่างปลอดภัย

SFTP (SSH File Transfer Protocol) ให้การอัปโหลดและดาวน์โหลดไฟล์ที่เข้ารหัสโดยไม่ต้องมี FTP daemon แยก บน Linux VPS SFTP อยู่ใน OpenSSH แล้ว — คู่มือนี้แสดงการตั้งค่าที่ปลอดภัยบนเซิร์ฟเวอร์ Hiddence

SFTP ด้วย user เฉพาะ

สร้าง user สำหรับอัปโหลดไฟล์เท่านั้น:

bash
sudo adduser sftpuser
sudo passwd sftpuser

# Test SFTP from client:
sftp sftpuser@YOUR_VPS_IP

# Or use FileZilla: Protocol SFTP, port 22

Chroot jail (แนะนำ)

จำกัด user ให้อยู่ในไดเรกทอรีเดียวเพื่อความปลอดภัย:

bash
sudo mkdir -p /var/sftp/sftpuser/upload
sudo chown root:root /var/sftp/sftpuser
sudo chmod 755 /var/sftp/sftpuser
sudo chown sftpuser:sftpuser /var/sftp/sftpuser/upload

sudo nano /etc/ssh/sshd_config

# Add at end:
Match User sftpuser
    ChrootDirectory /var/sftp/sftpuser
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

sudo systemctl restart sshd

เชื่อมต่อจาก desktop

Clients ยอดนิยมรองรับ SFTP ในตัว:

  • FileZilla — Host: sftp://YOUR_VPS_IP, Port: 22, Logon Type: Normal
  • WinSCP — Protocol: SFTP
  • macOS Finder — Connect to Server: sftp://user@IP
  • Linux: sftp user@IP or scp file user@IP:/path/
  • VS Code — Remote SSH extension for direct editing

Checklist ความปลอดภัย

  • ใช้ SSH keys แทนรหัสผ่านสำหรับ SFTP users เมื่อเป็นไปได้
  • อย่าแชร์ root SFTP access กับบุคคลที่สาม
  • ปิด password auth สำหรับ root ใน sshd_config
  • ใช้ chroot สำหรับบัญชี upload-only
  • ใช้ร่วมกับ Fail2ban บนพอร์ต SSH
  • Firewall: อนุญาตพอร์ต 22 จาก IP ที่เชื่อถือได้เท่านั้น หากเป็นไปได้

เคล็ดลับ

  • SFTP ไม่ใช่ FTP — อย่าเปิดพอร์ต 21 เว้นแต่ต้องการ legacy FTP
  • สำหรับ WordPress ใช้ SSH keys + sftp ใน wp-config หรือเครื่องมือ deployment
  • rsync ผ่าน SSH เร็วกว่าสำหรับการย้ายขนาดใหญ่
  • ตรวจสอบ permissions หาก upload ล้มเหลว (755 dirs, 644 files)
  • หลังเปลี่ยน sshd_config ทดสอบ SSH ใน session ที่สองก่อนปิดเสมอ