“CheckHostIP no”的实际缺点是什么?

信息安全 SSH ssh 主机密钥
2021-08-18 17:58:02

CheckHostIP no在 SSH 客户端配置中设置的实际安全含义是什么?

对此进行了一些讨论(例如https://askubuntu.com/a/48339)并建议将其设置yes为额外的安全性(例如https://security.stackexchange.com/a/8479https:// /serverfault.com/a/193634),但也有人说这对安全性并不重要(https://unix.stackexchange.com/a/285551)。

可以CheckHostIP no防止/检测到哪些类型的攻击CheckHostIP yes

事后:不CheckHostIP no意味着目标主机的SSH密钥不检查在所有如果是这样,我如何安全地连接到具有动态 IP 地址的机器?

1个回答

CheckHostIP no表示 ssh 不检查 known_hosts 文件中的主机 IP 地址。因此,仅当CheckHostIP设置为noDNS 服务器时,才可以返回 known_hosts 文件中写入的不同 IP 地址,而不会发出 ssh 客户端的警告。

例如,(未散列的)known_hosts 文件中的条目可能是:

www.example.org,1.2.3.4 ssh-rsa AAAA...njvPw==

如果CheckHostIP设置为noDNS 服务器,则可以将不同的 IP 作为 1.2.3.4 作为 www.example.org 的地址返回。但是仍然检查 SSH 密钥。CheckHostIP no仅意味着期望 IP 是可变的,并允许对主机名进行密钥检查。

因此,如果 (1)CheckHostIP设置为no(2) 攻击者可以控制 DNS 并且 (3) 拥有您的私钥,他可以设置一个服务器,该服务器首先看起来像原始服务器。这可能不利于保密。想想备份服务器。但是,如果满足前提条件 2+3,攻击者已经能够破坏您的系统。CheckHostIP no只有更进一步的攻击是可能的