พฤษภาคม 23, 2026คู่มือ
วิธีตั้งค่า SFTP สำหรับถ่ายโอนไฟล์อย่างปลอดภัย
ใช้ OpenSSH สำหรับ SFTP upload ไปยัง VPS: สร้าง users, chroot jails และเชื่อมต่อด้วย FileZilla หรือ WinSCP

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 22Chroot 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 ที่สองก่อนปิดเสมอ