在 CentOS 上禁止 SFTP 登录,常见做法取决于你是禁止某个用户/组,还是完全关闭 SFTP。下面按常见场景给你总结(适用于 CentOS 7/8,使用 OpenSSH)。
DenyUsers(推荐)编辑 SSH 配置文件:
vim /etc/ssh/sshd_config
添加:
DenyUsers testuser
或禁止多个用户:
DenyUsers user1 user2
然后重启 SSH:
systemctl restart sshd
✅ 效果:
1️⃣ 创建禁止 SFTP 的用户组:
groupadd nosftp
2️⃣ 将用户加入该组:
usermod -aG nosftp testuser
3️⃣ 编辑 /etc/ssh/sshd_config:
DenyGroups nosftp
4️⃣ 重启 SSH:
systemctl restart sshd
✅ 适合批量禁止用户
编辑 /etc/ssh/sshd_config:
Subsystem sftp /usr/libexec/openssh/sftp-server
改为:
Subsystem sftp /bin/false
⚠️ 不推荐:会影响所有用户,且容易误伤
编辑:
vim /etc/ssh/sshd_config
注释或删除:
# Subsystem sftp /usr/libexec/openssh/sftp-server
或者改为:
Subsystem sftp none
重启 SSH:
systemctl restart sshd
✅ 效果:
⚠️ 注意:
SFTP 和 SCP 都依赖 SSH,无法完全区分
但你可以:
sftp-serverrbash)ForceCommand示例(限制用户只能执行指定命令):
Match User testuser
ForceCommand /bin/bash
从另一台机器测试:
sftp user@centos_ip
Connection closed 或 Permission denied ✅ 成功| 需求 | 推荐方式 |
|---|---|
| 禁止单个用户 SFTP | DenyUsers |
| 禁止一组用户 SFTP | DenyGroups |
| 完全关闭 SFTP | 禁用 Subsystem sftp |
| 安全加固 | 配合防火墙 + 密钥认证 |
如果你愿意,可以告诉我:
我可以给你一份精确配置方案。