温馨提示×

debian sftp用户怎么创建

小樊
42
2026-09-24 22:09:33
栏目: 智能运维

在 Debian 上创建一个 仅用于 SFTP 的用户(通常不能 SSH 登录,只能传文件),可以按下面步骤来。


一、创建 SFTP 用户

sudo adduser sftpuser

按提示设置密码(可留空或用密码)。


二、创建 SFTP 根目录(重要)

SFTP 用户的根目录 必须属于 root,且其他用户不可写。

sudo mkdir -p /srv/sftp/sftpuser
sudo chown root:root /srv/sftp/sftpuser
sudo chmod 755 /srv/sftp/sftpuser

创建用户可写目录:

sudo mkdir /srv/sftp/sftpuser/upload
sudo chown sftpuser:sftpuser /srv/sftp/sftpuser/upload

三、修改 SSH 配置

编辑配置文件:

sudo nano /etc/ssh/sshd_config

在文件末尾添加:

Match User sftpuser
    ChrootDirectory /srv/sftp/sftpuser
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

如果是多个用户,可用:

Match Group sftp

并 sudo addgroup sftp && sudo usermod -aG sftp sftpuser


四、重启 SSH

sudo systemctl restart ssh

五、测试 SFTP

sftp sftpuser@服务器IP

登录后只能在 /upload 目录中读写。


六、禁止 SSH 登录(可选)

如果刚才用的是 adduser,默认是不能 shell 登录的(只要没设 bash)。
可强制限制:

sudo usermod -s /usr/sbin/nologin sftpuser

常见问题

✅ 报错:broken pipe / chroot failed
→ Chroot 目录必须是 root:root 且权限 ≤ 755

✅ 能登录但不能写
→ 在 Chroot 里再建子目录并改属主


如果你需要:

  • 多用户 SFTP
  • 使用密钥登录
  • 限制磁盘配额
  • Docker / ProFTPD 方案

可以继续问我。

0 踩