温馨提示×

centos sftp用户怎么创建

小樊
43
2026-09-27 03:38:52
栏目: 智能运维

在 CentOS 上创建一个 仅用于 SFTP 的用户(不能 SSH 登录),通常步骤如下:


一、创建 SFTP 用户

# 创建用户
useradd -m sftpuser

# 设置密码
passwd sftpuser

二、创建 SFTP 专用目录

mkdir -p /data/sftp/sftpuser
chown root:root /data/sftp
chown root:root /data/sftp/sftpuser
chmod 755 /data/sftp/sftpuser

⚠️ 注意:
SFTP 根目录必须属于 root,且其他用户不能写,否则登录会失败。


三、给用户一个可写目录(可选)

mkdir /data/sftp/sftpuser/upload
chown sftpuser:sftpuser /data/sftp/sftpuser/upload

四、修改 SSH 配置(关键)

编辑配置文件:

vi /etc/ssh/sshd_config

在文件末尾添加:

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

保存后退出。


五、重启 SSH 服务

systemctl restart sshd

六、测试 SFTP 登录

sftp sftpuser@服务器IP

✅ 成功登录后,用户只能看到 /upload 目录,且不能 SSH 登录。


七、禁止 SFTP 用户 SSH 登录(可选)

usermod -s /sbin/nologin sftpuser

常见问题

1️⃣ 登录报错:bad ownership or modes for chroot

原因是 ChrootDirectory 不是 root 所有或权限不对
✅ 解决:

chown root:root /data/sftp/sftpuser
chmod 755 /data/sftp/sftpuser

2️⃣ 多个 SFTP 用户

重复以上步骤,每个用户一个目录即可。


如果你需要 多用户共用目录 / 只读 / 限制 IP 的配置,也可以告诉我。

0 踩