温馨提示×

centos怎样加sftp账户

小樊
32
2026-10-08 21:16:53
栏目: 智能运维

在 CentOS 上添加 SFTP 账户,通常有两种常见做法:


一、创建仅用于 SFTP 的账户(推荐,禁止 SSH 登录)

1. 创建用户和组

groupadd sftpusers
useradd -g sftpusers -s /sbin/nologin sftpuser
passwd sftpuser

2. 创建 SFTP 根目录

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

3. 创建用户可写目录

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

4. 修改 SSH 配置

编辑 /etc/ssh/sshd_config:

vi /etc/ssh/sshd_config

注释或确认以下行:

# Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp

在文件末尾添加:

Match Group sftpusers
    ChrootDirectory /data/sftp/%u
    ForceCommand internal-sftp
    X11Forwarding no
    AllowTcpForwarding no

5. 重启 SSH

systemctl restart sshd

6. 测试

sftp sftpuser@服务器IP

二、创建普通用户并允许 SFTP(也可 SSH 登录)

useradd sftpuser
passwd sftpuser

默认 CentOS 已支持 SFTP,直接用:

sftp sftpuser@服务器IP

三、常见问题

1. 登录报错:permission denied

  • Chroot 目录必须 root 拥有
  • 目录权限不能大于 755

2. 无法上传文件

  • 用户对自己的家目录无写权限
  • 应使用子目录(如 upload)

3. 防火墙

firewall-cmd --add-service=ssh --permanent
firewall-cmd --reload

如果你是 CentOS 7 / 8 / Stream,或需要 多用户隔离 / 密钥登录 / 限制目录,可以告诉我具体需求,我可以给你更精确的配置。

0 踩