下面以 Debian 11/12 为例,说明如何配置 SFTP 服务(基于 OpenSSH)。SFTP 通常由 SSH 自带,不需要额外安装 FTP 服务。
大多数 Debian 已默认安装:
sudo apt update
sudo apt install openssh-server
确认服务状态:
sudo systemctl status ssh
sudo adduser sftpuser
sudo mkdir -p /sftp/sftpuser
sudo chown root:root /sftp
sudo chmod 755 /sftp
sudo chown sftpuser:sftpuser /sftp/sftpuser
⚠️ 注意:
编辑 SSH 配置:
sudo nano /etc/ssh/sshd_config
# Subsystem sftp /usr/lib/openssh/sftp-server
改为:
Subsystem sftp internal-sftp
在文件末尾添加:
Match User sftpuser
ChrootDirectory /sftp/sftpuser
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
如果你想限制一组用户:
Match Group sftp
ChrootDirectory /sftp/%u
ForceCommand internal-sftp
sudo systemctl restart ssh
从本地或远程:
sftp sftpuser@服务器IP
或使用 FileZilla:
通常是因为:
检查:
ls -ld /sftp /sftp/sftpuser
确认用户对子目录有正确权限。
上面的 ForceCommand internal-sftp 已实现。
AllowUsers)/var/log/auth.log如果你需要:
可以继续告诉我你的使用场景。