识别 .ssh/known_hosts 中的条目?

Soc*_*tes 4 ssh

有没有办法识别其中的每个条目.ssh/known_hosts?与许多机器创建连接后,我现在发现自己在该文件中有许多条目。有些条目来自连接到不再存在的虚拟机。所有这些条目看起来都有点像:

\n\n
|1|ULDIElsaflkauvi83nlakfd83\xc3\xb6lkjdsflLJDLJF389==\n|1|UDkkenm88fKNDK8NDKLJh8393lLDf8adfadrlj32rl==\n|1|MEUdiyf882nflLld89200KDLj8D8323kljhnLIDKJL==\n
Run Code Online (Sandbox Code Playgroud)\n\n

有没有办法知道哪个条目是针对哪个客户的?

\n

Nan*_*ish 5

您已在 ssh_config 文件中将 HashKnownHosts 设置为“yes”,因此主机名在纯文本中不可用。

如果您提前知道要查找的主机名,可以使用以下命令进行搜索:

ssh-keygen -H -F hostname
Run Code Online (Sandbox Code Playgroud)

以下是 ssh-keygen(1) 手册页中的相关部分:

-F 主机名 在known_hosts 文件中搜索指定的主机名,列出找到的所有匹配项。此选项对于查找散列主机名或地址很有用,也可以与 -H 选项结合使用,以散列格式打印找到的密钥。

例如

ssh-keygen -H -F github.com
Run Code Online (Sandbox Code Playgroud)

将输出相应的known_hosts条目。如果没有输出,则意味着该主机在您的文件中没有条目。

  • 值得注意的是,HashKnownHosts 是一项安全功能,其引入的目的是使获得您系统访问权限的攻击者难以使用known_hosts 文件来识别您访问的其他主机,从而获得目标列表以进一步实施攻击。它不是“只是”让你沮丧...... (2认同)