在 Debian 上创建一个 只能使用 SFTP、不能登录 Shell 的用户,通常按下面步骤来做(最常用、最安全的方式)。
sudo adduser sftpuser
按提示设置密码(可留空或设置)。
sudo usermod -s /usr/sbin/nologin sftpuser
编辑 SSH 配置文件:
sudo nano /etc/ssh/sshd_config
在文件末尾添加:
Match User sftpuser
ChrootDirectory /home/sftpuser
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
如果是多个用户,可以用:
Match Group sftp
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
✅ 可以登录
❌ 不能使用 ssh sftpuser@服务器IP
fatal: bad ownership or modes for chroot directory
说明 /home/sftpuser 不是 root 拥有或权限不对。
sudo groupadd sftp
sudo usermod -aG sftp sftpuser
然后 sshd_config 用:
Match Group sftp
如果你需要:
告诉我,我可以给你对应配置。