温馨提示×

CentOS SFTP如何添加用户

小樊
34
2026-07-08 18:02:32
栏目: 智能运维

下面以 CentOS 7 / 8 / Stream 为例,介绍 通过 SFTP 添加用户 的常见做法。
如果你只是想让该用户 只能使用 SFTP,不能 SSH 登录,我会重点说明。


一、创建 SFTP 用户(最常用方式)

1️⃣ 创建用户

useradd -m sftpuser

设置密码:

passwd sftpuser

2️⃣ 禁止 SSH 登录(可选但推荐)

如果只允许 SFTP,不允许 shell 登录:

usermod -s /sbin/nologin sftpuser

二、配置 SFTP(使用 internal-sftp)

编辑 SSH 配置:

vi /etc/ssh/sshd_config

在文件末尾添加或修改:

Subsystem sftp internal-sftp

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

internal-sftpsftp-server 更稳定、安全


三、设置目录权限(非常重要)

ChrootDirectory 必须满足:

  • 所有者是 root
  • 权限不能大于 755
chown root:root /home/sftpuser
chmod 755 /home/sftpuser

创建可写目录

mkdir /home/sftpuser/upload
chown sftpuser:sftpuser /home/sftpuser/upload
chmod 755 /home/sftpuser/upload

用户登录后只能访问 upload 目录进行上传下载。


四、重启 SSH 服务

systemctl restart sshd

五、测试 SFTP

sftp sftpuser@服务器IP

六、常见问题

❌ 登录失败(Permission denied)

检查:

  • /home/sftpuser 是否为 root 所有
  • 权限是否为 755
  • SELinux 状态

查看日志:

tail -f /var/log/secure

✅ 关闭 SELinux(如影响)

临时关闭:

setenforce 0

永久关闭:

vi /etc/selinux/config
SELINUX=disabled

七、如果你想「多个 SFTP 用户」

  • 每个用户单独目录
  • 或统一使用 /data/sftp

我可以帮你写 多用户 + 统一目录 的完整配置方案。


如果你愿意,可以告诉我:

  • ✅ CentOS 版本
  • ✅ 是否需要禁止 SSH
  • ✅ 是否需要多个用户

我可以给你 完全定制化的配置

0