温馨提示×

centos sftp配置有哪些步骤

小樊
45
2026-10-05 22:50:22
栏目: 智能运维

在 CentOS 上配置 SFTP(通常基于 OpenSSH 的 internal-sftp),常见步骤如下:


一、前提条件

  • 已安装并运行 openssh-server
  • 有 root 或 sudo 权限
rpm -qa | grep openssh-server
systemctl status sshd

二、创建 SFTP 用户和目录

1. 创建用户

useradd 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:sftpuser /data/sftp/sftpuser/upload

三、修改 SSH 配置

编辑配置文件:

vi /etc/ssh/sshd_config

1. 注释或确认以下行

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

2. 添加 SFTP 用户限制

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

多个用户可用 Match Group sftpusers


四、SELinux 配置(如开启)

setsebool -P ssh_chroot_rw_homedirs on
restorecon -Rv /data/sftp

五、重启 SSH 服务

systemctl restart sshd

六、防火墙(如有)

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

七、测试 SFTP

sftp sftpuser@服务器IP

八、常见问题

  • 登录后立即退出:Chroot 目录属主必须是 root
  • 无法写入:只能写在子目录
  • 权限拒绝:检查 SELinux 和目录权限

如果你需要 多用户隔离 / 仅 SFTP 无 SSH / 使用密钥登录,我也可以给你对应配置示例。

0 踩