温馨提示×

debian sftp用户怎么建

小樊
51
2026-10-06 13:43:39
栏目: 智能运维

在 Debian 上创建一个 只能使用 SFTP、不能登录 Shell 的用户,通常按下面步骤来做(最常用、最安全的方式)。


一、创建 SFTP 用户

sudo adduser sftpuser

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


二、限制用户只能 SFTP(禁止 SSH Shell)

1. 修改用户 Shell

sudo usermod -s /usr/sbin/nologin sftpuser

2. 配置 SSH(关键)

编辑 SSH 配置文件:

sudo nano /etc/ssh/sshd_config

在文件末尾添加:

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

如果是多个用户,可以用:

Match Group sftp

3. 设置目录权限(非常重要)

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

三、重启 SSH

sudo systemctl restart ssh

四、测试 SFTP

sftp sftpuser@服务器IP

✅ 可以登录
❌ 不能使用 ssh sftpuser@服务器IP


五、常见问题

1. 登录报错

fatal: bad ownership or modes for chroot directory

说明 /home/sftpuser 不是 root 拥有或权限不对。

2. 想多个用户

sudo groupadd sftp
sudo usermod -aG sftp sftpuser

然后 sshd_config 用:

Match Group sftp

如果你需要:

  • 限定到某个子目录
  • 使用密钥登录
  • Docker / 宝塔 / 云服务器场景

告诉我,我可以给你对应配置。

0 踩