温馨提示×

CentOS怎么安装SFTP

小樊
43
2026-07-20 10:05:10
栏目: 智能运维

CentOS 上安装和配置 SFTP(基于 OpenSSH)其实非常简单,因为 SFTP 是 OpenSSH 自带的功能,一般不需要额外安装软件。下面按常见场景给你详细说明。


一、确认 OpenSSH 是否已安装(必须有)

CentOS 通常默认已安装,但建议确认一下:

rpm -qa | grep openssh

如果没有,安装:

yum install -y openssh-server openssh-clients

启动并设置开机自启:

systemctl start sshd
systemctl enable sshd

二、默认 SFTP 是否可用(快速验证)

SFTP 默认是 开启的,只要 SSH 能连,SFTP 就能用。

测试:

sftp 用户名@服务器IP

如果能连,说明 SFTP 已经可用 ✅


三、创建专用 SFTP 用户(推荐做法)

1️⃣ 创建用户(不允许 SSH 登录)

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

2️⃣ 创建 SFTP 根目录

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

⚠️ SFTP 的根目录必须属主是 root,且不能被其他用户写


3️⃣ 创建用户可写目录

mkdir /data/sftp/upload
chown sftpuser:sftpuser /data/sftp/upload
chmod 755 /data/sftp/upload

四、配置 SFTP(重要)

编辑 SSH 配置文件:

vim /etc/ssh/sshd_config

1️⃣ 确认或添加以下内容

Subsystem sftp internal-sftp

2️⃣ 添加 SFTP 用户限制(放在文件末尾)

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

ChrootDirectory 限制用户只能访问 /data/sftp


五、重启 SSH 服务

systemctl restart sshd

六、测试 SFTP 连接

本地测试

sftp sftpuser@127.0.0.1

远程测试

sftp sftpuser@服务器IP

登录后:

pwd
ls
cd upload
put test.txt

七、常见问题排查

❌ 登录失败 / 无法连接

查看日志:

tail -f /var/log/secure

❌ ChrootDirectory 权限错误

必须满足:

  • 目录属主是 root
  • 目录权限 ≤ 755
  • 用户 不能 有写权限

八、CentOS 7 / 8 / Stream 通用说明

系统 命令
CentOS 7 yum
CentOS 8 / Stream dnf

九、可选:禁止 SFTP 用户 SSH 登录

usermod -s /sbin/nologin sftpuser

如果你需要:

  • 多用户 SFTP
  • 限制不同目录
  • 只允许 SFTP,禁止 SSH
  • 配合 Nginx / FTP 使用

可以直接告诉我你的使用场景,我可以给你定制配置方案。

0