五月 23, 2026指南
如何设置 SFTP 安全文件传输
使用 OpenSSH 进行 SFTP 上传:创建用户、chroot,并用 FileZilla 或 WinSCP 连接。

SFTP(SSH 文件传输协议)无需单独 FTP 守护进程即可加密上传下载。Linux VPS 上 SFTP 内置于 OpenSSH——本指南介绍在 Hiddence 服务器上的安全设置。
专用用户 SFTP
创建仅用于上传的用户:
bash
sudo adduser sftpuser
sudo passwd sftpuser
# Test SFTP from client:
sftp sftpuser@YOUR_VPS_IP
# Or use FileZilla: Protocol SFTP, port 22Chroot 监狱(推荐)
为安全将用户限制在单一目录:
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从桌面连接
常用客户端均支持 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
安全检查清单
- 尽可能对 SFTP 用户使用 SSH 密钥而非密码
- 切勿向第三方共享 root SFTP
- 在 sshd_config 中禁用 root 密码登录
- 纯上传账户使用 chroot
- SSH 端口配合 Fail2ban
- 若可行,防火墙仅对可信 IP 开放 22 端口
提示
- SFTP 不是 FTP——除非需要旧版 FTP,否则勿开放 21 端口
- WordPress 建议使用 SSH 密钥 + sftp 或部署工具
- 大规模迁移 SSH 上 rsync 更快
- 上传失败时检查权限(目录 755,文件 644)
- 修改 sshd_config 后,关闭会话前务必在另一会话测试 SSH