温馨提示×

centos怎么禁用sftp功能

小樊
35
2026-09-18 03:28:18
栏目: 智能运维

在 CentOS 上“禁用 SFTP”通常有两种常见场景,下面分别说明。


一、只允许 SSH,不允许 SFTP(最常用)

SFTP 是通过 sshd 内部的 Subsystem sftp 提供的,不装 OpenSSH Server 以外软件也能禁用。

方法 1:注释 SFTP Subsystem(推荐)

  1. 编辑 SSH 配置
sudo vi /etc/ssh/sshd_config
  1. 找到这一行:
Subsystem sftp /usr/libexec/openssh/sftp-server

改成:

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

或直接删除该行。

  1. 重启 sshd
sudo systemctl restart sshd

✅ 效果:

  • SSH 登录正常
  • sftp 命令无法连接

方法 2:针对用户/组禁用 SFTP(更精细)

如果你只想禁止某些用户使用 SFTP,但允许 SSH:

Match User testuser
    ForceCommand /bin/bash

或禁止 SFTP:

Match Group nosftp
    Subsystem sftp internal-sftp
    ForceCommand /bin/false

二、彻底关闭 SSH 中的 SFTP(包括 internal-sftp)

有些系统用:

Subsystem sftp internal-sftp

也要一并注释掉。


三、确认是否禁用成功

从客户端测试:

sftp user@centos_ip

应出现类似:

Connection closed
subsystem request failed

四、如果你是想“禁止文件传输”(包括 scp)

SFTP 禁了,scp 仍可传文件,要一起禁:

sudo yum remove openssh-clients

⚠️ 不推荐(会影响 ssh 命令)

更安全的做法:

  • 用 ForceCommand
  • 或用防火墙 / ACL 限制

如果你能说明:

  • 是 所有用户 还是 部分用户
  • 是否允许 scp
  • CentOS 版本(7 / 8 / Stream)

我可以给你更精确的配置方案。

0 踩