在 CentOS 上“禁用 SFTP”通常有两种常见场景,下面分别说明。
SFTP 是通过 sshd 内部的 Subsystem sftp 提供的,不装 OpenSSH Server 以外软件也能禁用。
sudo vi /etc/ssh/sshd_config
Subsystem sftp /usr/libexec/openssh/sftp-server
改成:
# Subsystem sftp /usr/libexec/openssh/sftp-server
或直接删除该行。
sudo systemctl restart sshd
✅ 效果:
sftp 命令无法连接如果你只想禁止某些用户使用 SFTP,但允许 SSH:
Match User testuser
ForceCommand /bin/bash
或禁止 SFTP:
Match Group nosftp
Subsystem sftp internal-sftp
ForceCommand /bin/false
有些系统用:
Subsystem sftp internal-sftp
也要一并注释掉。
从客户端测试:
sftp user@centos_ip
应出现类似:
Connection closed
subsystem request failed
SFTP 禁了,scp 仍可传文件,要一起禁:
sudo yum remove openssh-clients
⚠️ 不推荐(会影响 ssh 命令)
更安全的做法:
ForceCommand如果你能说明:
我可以给你更精确的配置方案。