小编And*_*idX的帖子

SSH 选项 CheckHostIP=yes 对我有何帮助?

关于此选项有很多讨论,大多数人认为“它提高了安全性”、“它可以保护您免受 MiTM 攻击/DNS 欺骗”等,但我不明白这是怎么回事。ssh_config(5)说这个选项

允许 ssh 检测主机密钥是否因 DNS 欺骗而更改

但它仍然显得模糊甚至误导,因为

  1. 该选项不会检测“主机密钥是否已更改”,而仅检测主机的 IP 是否已更改,并且
  2. 它没有详细说明当它检测到这样的事情时它会做什么(例如,它是否会阻止连接发生?)。

由于文档含糊不清,其他人甚至似乎认为CheckHostIP=yes不会您连接到已更改 IP 的主机(即它的 IP 与已记录的 IP 不同known_hosts),这是完全不真实的,位于至少据我自己的测试可以理解。

  • CheckHostIP=yes当我(默认)连接到主机密钥已存储在 中known_hosts但已更改其 IP 的远程服务器时,连接正常进行,但我收到警告:

    永久添加 IP 地址的 ECDSA 主机密钥 [......]

    另外,还会在 中添加一个新行known_hosts,其中包含服务器的主机密钥(未更改)和新的 IP 地址(不同)。如果主机稍后再次更改其 IP,则下次我使用 来连接它时CheckHostIP=yes,将附加一个新行,known_hosts依此类推。

  • 如果我连接CheckHostIP=no到已更改其 IP 地址的服务器,连接将继续(这也是 发生的情况CheckHostIP=yes),但这次没有警告或在 中附加新行known_hosts

yes因此,和之间的唯一区别no似乎是连接时的简单一行警告,以及known_hosts每次主机更改其 IP 时记录新地址(有效地保留服务器不同 IP 的历史记录)。

如果是这样的话,我什至不确定这CheckHostIP=yes比 …

domain-name-system ssh man-in-the-middle

11
推荐指数
1
解决办法
2276
查看次数