温馨提示×

centos怎么添加sftp用户

小樊
34
2026-09-24 06:04:12
栏目: 智能运维

在 CentOS 上添加 SFTP 用户(通常限制只能 SFTP,不能 SSH 登录)一般步骤如下:


一、创建 SFTP 用户

useradd -m -s /sbin/nologin sftpuser
passwd sftpuser

说明:

  • -m:创建家目录
  • -s /sbin/nologin:禁止 SSH 登录(仅 SFTP)

二、创建 SFTP 根目录(推荐)

为了安全,SFTP 根目录不能由用户自己拥有写权限。

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

三、配置 SSH(关键)

编辑 SSH 配置文件:

vi /etc/ssh/sshd_config

在文件末尾添加:

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

如果有多个用户,可以用组方式:

Match Group sftp
    ChrootDirectory /data/sftp/%u
    ForceCommand internal-sftp

(需 groupadd sftp 并将用户加入)


四、重启 SSH 服务

systemctl restart sshd

五、测试 SFTP

sftp sftpuser@服务器IP

六、常见问题

1. 登录报 broken pipe

  • ChrootDirectory 必须是 root 拥有
  • 权限不能大于 755

2. 想允许 SSH 登录?

把 shell 改成:

usermod -s /bin/bash sftpuser

3. 多个用户统一管理

groupadd sftp
useradd -g sftp -s /sbin/nologin user1

如果你需要 指定端口 / 限制 IP / 使用密钥登录,也可以告诉我,我可以给你更完整的配置。

0 踩