我这里有一些服务器有“是”,还有一些没有(我今天才发现这个选项)。
HashKnownHosts 的优点在于,我可以更轻松地维护 known_hosts 文件。
使用 HashKnownHosts 的实际优势是什么?
答案1
known_hosts 文件存在一个小的安全风险。它包含您连接的所有服务器的便捷列表。获得您的密码或未加密私钥的攻击者只需遍历列表,直到您的凭据被接受。哈希可以解决这个问题,或者至少可以模糊列表。
答案2
有了明文known_hosts
,攻击者很容易知道你连接到了哪些服务器。文章和麻省理工学院论文关于潜在的 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
这个命令,尤其是最后一个命令,对于 99% 的用户真正需要访问 的情况来说应该足够了known_hosts
。当然,你将失去 ssh host tab 补全功能。
另请注意,命令行选项ssh-keygen
区分大小写
还有一个相关问题在 unix.SE。