下面按最常见、最安全的做法,给你一份 Debian 上配置 SFTP(仅 SFTP,禁止 SSH Shell) 的实用指南。
sudo apt update
sudo apt install openssh-server
sudo adduser sftpuser
sudo usermod -s /usr/sbin/nologin sftpuser
sudo mkdir -p /sftp/sftpuser
sudo chown root:root /sftp/sftpuser
sudo chmod 755 /sftp/sftpuser
sudo mkdir /sftp/sftpuser/upload
sudo chown sftpuser:sftpuser /sftp/sftpuser/upload
目录结构示例:
/sftp/sftpuser/ (root:root, 755)
└── upload/ (sftpuser: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
AllowTcpForwarding no
X11Forwarding no
如有多个用户,可用
Match Group sftp方式
sudo systemctl restart ssh
sftp sftpuser@localhost
错误示例:
fatal: bad ownership or modes for chroot directory
✅ 解决:
/sftp/sftpuser 必须是 root:root755✅ 确认:
sudo groupadd sftp
sudo usermod -aG sftp sftpuser
sshd_config:
Match Group sftp
ChrootDirectory /sftp/%u
ForceCommand internal-sftp
如果你需要:
可以直接告诉我你的使用场景。