温馨提示×

sftp 账号 centos 怎么建

小樊
41
2026-09-02 22:42:20
栏目: 智能运维

在 CentOS 上创建 SFTP 账号,通常做法是创建一个仅用于 SFTP 的系统用户,并限制其只能访问指定目录(不能 SSH 登录)。下面是常用、安全的做法。


一、创建 SFTP 用户

# 创建用户,不创建家目录(也可创建)
useradd -m sftpuser

# 设置密码
passwd sftpuser

二、创建 SFTP 专用目录

# 例如只允许访问 /data/sftp/sftpuser
mkdir -p /data/sftp/sftpuser

# 修改目录权限(非常重要)
chown root:root /data/sftp/sftpuser
chmod 755 /data/sftp/sftpuser

# 用户实际可写目录
mkdir /data/sftp/sftpuser/upload
chown sftpuser:sftpuser /data/sftp/sftpuser/upload

✅ 注意:

  • SFTP 根目录 必须是 root 所有
  • 子目录才能给用户写权限

三、修改 SSH 配置(限制 SFTP)

编辑配置文件:

vi /etc/ssh/sshd_config

1️⃣ 确认有这行(默认一般有)

Subsystem sftp internal-sftp

2️⃣ 在文件末尾添加

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

如果有多个用户,可重复 Match User


四、重启 SSH 服务

systemctl restart sshd

五、测试 SFTP 登录

sftp sftpuser@服务器IP

✅ 成功登录后只能看到 /upload 目录


六、禁止 SSH 登录(可选)

如果用户只用于 SFTP:

usermod -s /sbin/nologin sftpuser

七、常见问题

❌ 登录报错:

bad ownership or modes for chroot directory

✅ 解决:

  • Chroot 目录必须是 root:root
  • 权限不能大于 755

如果你需要:

  • ✅ 多用户 SFTP
  • ✅ 使用 密钥登录
  • ✅ 限制 IP
  • ✅ 配合 vsftpd / firewalld

告诉我你的使用场景,我可以给你更合适的配置。

0 踩