在 Ubuntu 上添加 SFTP 用户(通常是为了让该用户只能通过 SFTP 访问指定目录,而不能 SSH 登录),一般按以下步骤操作。
sudo adduser sftpuser
按提示设置密码(其他信息可留空)。
推荐结构( safer 方式):
sudo mkdir -p /sftp/sftpuser/upload
sudo chown root:root /sftp/sftpuser
sudo chmod 755 /sftp/sftpuser
sudo chown sftpuser:sftpuser /sftp/sftpuser/upload
说明:
/sftp/sftpuser 必须属于 rootupload编辑 SSH 配置:
sudo nano /etc/ssh/sshd_config
在文件末尾添加:
Match User sftpuser
ChrootDirectory /sftp/sftpuser
ForceCommand internal-sftp
PasswordAuthentication yes
AllowTcpForwarding no
X11Forwarding no
保存后测试配置:
sudo sshd -t
如果没有报错,重启 SSH:
sudo systemctl restart ssh
如果未使用 ForceCommand internal-sftp,可手动设置:
sudo usermod -s /usr/sbin/nologin sftpuser
在另一台机器或本机:
sftp sftpuser@服务器IP
登录后只能看到:
/sftp/sftpuser/upload
通常是:
ChrootDirectory 不是 root 拥有755确保上传目录属于该用户:
chown sftpuser:sftpuser /sftp/sftpuser/upload
如果你需要:
可以告诉我,我可以给你更具体的方案。