IgnoreRhosts yes 是 OpenSSH 强制禁用不安全的 .rhosts 和 /etc/hosts.equiv 主机信任认证的硬性安全基线,必须设为 yes 以符合等保2.0、CIS 等合规要求,并需同步关闭 RhostsRSAAuthentication、HostbasedAuthentication 等关联风险项。

IgnoreRhosts yes 是 OpenSSH 服务端配置中一项关键的安全控制项,它的作用是彻底禁用基于 .rhosts 和 /etc/hosts.equiv 的传统主机信任认证机制——这种机制早在 SSH 协议普及前就已被证明极不安全,且与现代最小权限、零信任原则完全相悖。
启用该选项不是“增强”,而是强制废除过时能力,属于基础安全基线的硬性要求。
为什么必须设为 yes?
-
.rhosts和hosts.equiv允许用户在未提供密码或密钥的情况下,仅凭 IP + 主机名匹配就获得登录权限 - 它们不校验用户身份,不加密通信,极易被 IP 欺骗、DNS 劫持或局域网 ARP 欺骗绕过
- OpenSSH 自 v5.0 起默认已将
IgnoreRhosts设为yes,但部分老旧系统或手动重装环境可能保留旧默认值 - 合规标准(如等保2.0、CIS Benchmark、华为云 HSS 基线)均明确要求:禁用所有基于主机的信任机制
如何确认并生效 IgnoreRhosts 配置
-
编辑主配置文件
sudo nano /etc/ssh/sshd_config
-
查找或添加以下行(取消注释并确保值为
yes)IgnoreRhosts yes
⚠️ 注意:不要写成
IgnoreRhosts on或true—— OpenSSH 只识别yes/no -
同时建议一并关闭其他关联风险项(强化效果)
linux-sysadmin下载Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
-
RhostsRSAAuthentication no(禁用已废弃的 Rhosts+RSA 混合认证) -
HostbasedAuthentication no(禁用基于公钥的主机级认证,除非你有严格管控的可信内网) -
PermitEmptyPasswords no(防止空口令绕过)
-
-
重启服务使配置生效
sudo systemctl restart sshd
-
验证是否生效
sudo sshd -t && echo "语法正确" sudo grep -i "^IgnoreRhosts" /etc/ssh/sshd_config
输出应为:
IgnoreRhosts yes
额外提醒:清除残留信任文件
即使配置已启用,也建议主动清理历史遗留的危险文件,避免误触发或审计失败:
# 删除用户级 rhosts 文件(对所有用户) sudo find /home -name ".rhosts" -delete 2>/dev/null sudo find /root -name ".rhosts" -delete 2>/dev/null # 清理系统级等价主机文件(若存在) sudo rm -f /etc/hosts.equiv
✅ 补充说明:
IgnoreRhosts yes不影响PubkeyAuthentication或PasswordAuthentication,它只切断 Rhosts 类路径,不影响你当前使用的密钥或密码登录方式。
不复杂但容易忽略

















