温馨提示×

centos怎么开启sftp服务

小樊
35
2026-10-20 12:36:37
栏目: 智能运维

在 CentOS 上开启 SFTP 服务,其实 SFTP 是基于 SSH 的,一般不需要单独安装 SFTP 服务,只要 SSH 服务正常即可。

下面按常见情况给你说明:


一、确认 SSH 服务已安装并运行(SFTP 依赖 SSH)

1. 检查 SSH 是否安装

rpm -qa | grep openssh

一般有:

  • openssh-server
  • openssh-clients

如果没有:

yum install -y openssh-server

2. 启动并设置开机自启

systemctl start sshd
systemctl enable sshd

3. 检查 SSH 状态

systemctl status sshd

看到 active (running) 就说明 OK。

✅ 到这一步,SFTP 已经可以使用了(默认端口 22)


二、使用 SFTP 测试

本地测试

sftp username@localhost

远程测试

sftp username@服务器IP

三、防火墙放行(如果连不上)

1. 放行 SSH(SFTP)端口

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

或指定端口(如 2222):

firewall-cmd --permanent --add-port=2222/tcp
firewall-cmd --reload

四、限制用户只能使用 SFTP(可选,常用)

如果你希望 用户只能 SFTP,不能 SSH 登录:

1. 修改 SSH 配置

vi /etc/ssh/sshd_config

添加或修改:

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

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

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

3. 重启 SSH

systemctl restart sshd

五、常见问题

❌ 连不上 SFTP

  • 检查 sshd 是否运行
  • 检查防火墙
  • 检查 SELinux(可临时关闭测试)
setenforce 0

❌ 登录后看不到目录

  • 多半是 ChrootDirectory 权限不对(必须是 root 拥有)

如果你愿意,可以告诉我:

  • CentOS 版本(6 / 7 / 8 / Stream)
  • 是否要 限制用户目录
  • 是否要 修改 SFTP 端口

我可以直接给你一份完整配置。

0 踩