在 Debian 上配置 SFTP(基于 OpenSSH)通常有两种常见需求:
下面我按最常用、最安全的方式给你讲。
Debian 一般默认已安装 OpenSSH:
sudo apt update
sudo apt install openssh-server
确认服务运行:
sudo systemctl status ssh
sudo adduser sftpuser
sudo usermod -s /usr/sbin/nologin sftpuser
编辑配置文件:
sudo nano /etc/ssh/sshd_config
注释或删除(如果有):
# Subsystem sftp /usr/lib/openssh/sftp-server
添加:
Subsystem sftp internal-sftp
Match User sftpuser
ChrootDirectory /home/sftpuser
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
Chroot 目录必须 root 拥有,且其他用户不可写:
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
创建可写目录:
sudo mkdir /home/sftpuser/upload
sudo chown sftpuser:sftpuser /home/sftpuser/upload
sudo systemctl restart ssh
sftp sftpuser@服务器IP
登录后只能在 /upload 目录上传下载。
原因:Chroot 目录权限不对
✅ 解决:确保 /home/sftpuser 是 root:root 且 755
✅ 确保 shell 是 /usr/sbin/nologin
/var/log/auth.log如果你愿意,可以告诉我:
我可以直接给你一份完整配置示例。