在 Debian 上“开启 SFTP 权限”通常包含几个层面:系统用户能否使用 SFTP、SSH 是否允许 SFTP、以及目录权限是否正确。下面按常见场景说明。
sudo apt update
sudo apt install openssh-server
sudo systemctl status ssh
如未运行:
sudo systemctl start ssh
sudo systemctl enable ssh
编辑 SSH 配置:
sudo nano /etc/ssh/sshd_config
确认存在以下行(通常默认有):
Subsystem sftp /usr/lib/openssh/sftp-server
修改后重启 SSH:
sudo systemctl restart ssh
只要用户有:
即可 SFTP 登录。
示例:
sudo adduser sftpuser
测试:
sftp sftpuser@服务器IP
sudo nano /etc/ssh/sshd_config
在末尾添加:
Match User sftpuser
ChrootDirectory /home/sftpuser
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
sudo mkdir /home/sftpuser/upload
sudo chown sftpuser:sftpuser /home/sftpuser/upload
⚠️ Chroot 目录必须 root 拥有,用户不能写根目录
sudo systemctl restart ssh
Match Group sftpusers
ChrootDirectory /home/%u
ForceCommand internal-sftp
sudo groupadd sftpusers
sudo usermod -aG sftpusers sftpuser
sudo tail -f /var/log/auth.log
Debian 默认无 SELinux,可忽略
如果你能说明:
我可以给你更精确的配置示例。