温馨提示×

centos sftp配置难吗

小樊
44
2026-10-17 15:24:33
栏目: 智能运维

CentOS 上配置 SFTP 不算难,尤其是只做“限制用户只能 SFTP、不能 SSH 登录”这种常见需求,步骤很固定。

下面给你一个最常见、最实用的方案(使用系统自带的 OpenSSH,不装额外软件)。


一、最常用场景:限制用户只能 SFTP,不能 SSH

1️⃣ 创建用户

useradd sftpuser
passwd sftpuser

2️⃣ 创建 SFTP 根目录(重要)

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

mkdir /sftp/sftpuser/upload
chown sftpuser:sftpuser /sftp/sftpuser/upload

⚠️ 注意:
SFTP 根目录必须属主是 root,且其他用户不可写


3️⃣ 修改 SSH 配置

编辑:

vi /etc/ssh/sshd_config

注释或删除原来的:

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

添加:

Subsystem sftp internal-sftp

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

4️⃣ 重启 SSH

systemctl restart sshd

5️⃣ 测试

sftp sftpuser@服务器IP

✅ 成功
❌ 若报错,常见原因:

  • Chroot 目录权限不对
  • SELinux 未放行

二、SELinux 情况(很多人卡这里)

如果是 CentOS 默认开启 SELinux:

setsebool -P ssh_chroot_rw_homedirs on

三、难度总结

需求 难度
普通 SFTP(系统用户) ⭐ 非常简单
限定目录 + 禁 SSH ⭐⭐ 中等
虚拟用户(无系统账号) ⭐⭐⭐ 偏难
高安全审计 / 多租户 ⭐⭐⭐⭐

四、如果你愿意,我可以:

  • 给你 一键脚本
  • 教你 用 key 登录而不是密码
  • 配置 多个用户不同目录
  • 用 vsftpd + SFTP 对比方案

你现在是 学习用 / 生产用 / 运维配置?

0 踩