温馨提示×

CentOS怎样开启SFTP功能

小樊
44
2026-08-03 23:06:39
栏目: 智能运维

CentOS 上开启 SFTP 功能,通常不需要额外安装软件,因为 SFTP 是 OpenSSH 的一部分。只要 SSH 服务正常,SFTP 就已经可用。下面按常见场景说明。


一、确认并开启 SSH(SFTP 依赖 SSH)

1. 检查 SSH 服务状态

systemctl status sshd

2. 启动并设置开机自启

systemctl start sshd
systemctl enable sshd

3. 确认 SSH 端口(默认 22)

ss -lntp | grep sshd

只要 SSH 正常,SFTP 默认就可用 ✅


二、默认 SFTP 使用方式(无需额外配置)

在客户端连接:

sftp username@服务器IP

或使用工具(WinSCP / FileZilla / Xftp)
协议选择 SFTP,端口 22


三、仅允许 SFTP,禁止 SSH 登录(推荐)

1. 创建 SFTP 用户

useradd -m sftpuser
passwd sftpuser

2. 修改 SSH 配置

编辑:

vi /etc/ssh/sshd_config

在文件末尾添加:

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

3. 设置目录权限(非常重要)

chown root:root /home/sftpuser
chmod 755 /home/sftpuser
mkdir /home/sftpuser/upload
chown sftpuser:sftpuser /home/sftpuser/upload

4. 重启 SSH

systemctl restart sshd

✅ 用户只能 SFTP,不能 SSH 登录


四、常见问题排查

1. 连接被拒绝

  • 防火墙未放行 22 端口
firewall-cmd --add-service=ssh --permanent
firewall-cmd --reload

2. 登录后提示 broken pipe

  • ChrootDirectory 权限不正确(必须是 root 拥有)

3. SELinux 影响(CentOS 常见)

getenforce

如果是 Enforcing,可临时关闭测试:

setenforce 0

五、总结

需求 操作
开启 SFTP 启动 sshd 即可
限制只能 SFTP 配置 ChrootDirectory + internal-sftp
默认端口 22
依赖服务 OpenSSH

如果你需要 多用户隔离非 22 端口密钥登录CentOS 7/8/Stream 特定配置,可以告诉我你的版本和需求,我可以给你定制方案。

0