温馨提示×

sftp 在 centos 如何安装

小樊
72
2026-09-02 22:37:22
栏目: 智能运维

在 CentOS 上,SFTP 本身不需要单独安装,因为它是 OpenSSH 的一部分。你只需要确保 openssh-server 已安装并运行即可。

下面是完整步骤:


一、检查是否已安装 OpenSSH

rpm -qa | grep openssh

一般你会看到类似:

openssh-8.x.x
openssh-server-8.x.x
openssh-clients-8.x.x

如果没有 openssh-server,就需要安装。


二、安装 SFTP(其实就是安装 SSH 服务)

CentOS 7 / 8 / Stream

sudo yum install -y openssh-server

(CentOS 8 / Stream 也可用 dnf)

sudo dnf install -y openssh-server

三、启动并设置开机自启

sudo systemctl enable sshd
sudo systemctl start sshd

查看状态:

sudo systemctl status sshd

四、确认 SFTP 可用

SFTP 默认由 /etc/ssh/sshd_config 中的这一段支持:

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

(CentOS 某些版本可能是 internal-sftp,都正常)

测试连接:

sftp username@server_ip

五、防火墙放行(如有)

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

六、常见需求(可选)

1️⃣ 限制用户只能使用 SFTP(不能 SSH 登录)

在 /etc/ssh/sshd_config 末尾添加:

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

然后:

sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser

重启 SSH:

sudo systemctl restart sshd

2️⃣ 创建专用 SFTP 用户

sudo useradd -m sftpuser
sudo passwd sftpuser

七、常见问题

❌ 连不上

  • 检查 sshd 是否运行
  • 检查防火墙 / 安全组
  • 检查 SELinux(可临时关闭测试)
getenforce
sudo setenforce 0

如果你告诉我:

  • CentOS 版本(7 / 8 / Stream)
  • 是否要 限制用户只能 SFTP
  • 是否使用 密钥登录

我可以给你更精确的配置示例。

0 踩