为什么我应该在 ssh_config 中使用“HashKnownHosts yes”?

Thi*_*ère 23 ssh

我有一些服务器是肯定的,其他一些没有(我今天才发现这个选项)。

HashKnownHosts no 的优点是我可以更轻松地维护 known_hosts 文件。

使用 HashKnownHosts 的实际优势是什么?

小智 28

使用明文known_hosts,攻击者很容易知道您连接到哪些服务器。有一篇文章MIT 论文是关于潜在的 ssh 蠕虫利用 可读的known_hosts. 当然,通常还有其他更麻烦的方法来确定攻击者可以使用的日常 ssh 登录,例如 shell 历史记录。

请注意,您仍然可以known_hosts使用ssh-keygen实用程序处理散列:

ssh-keygen -F myhost         # shows myhosts's line in the known_hosts file
ssh-keygen -l -F myhost      # additionally shows myhost's fingerprint
ssh-keygen -R myhost         # remove myhost's line from known_hosts
Run Code Online (Sandbox Code Playgroud)

这对于 99% 的用户确实需要访问known_hosts. 当然,您将丢失 ssh 主机选项卡完成。

另请注意,命令行选项ssh-keygen区分大小写

在 unix.SE上还有一个相关问题


one*_*dd1 9

known_hosts 文件代表一个小的安全风险。它包含您连接的所有服务器的方便列表。获得您的密码或未加密私钥的访问权限的攻击者只需要向下迭代列表,直到您的凭据被接受。散列解决了这个问题或至少混淆了列表。

  • 此答案似乎已从 https://vitalvector.com/blog/2009/02/ssh-tip-hash-known-hosts.html 未经署名复制 (5认同)