我已经为所有系统设置了基于密钥的 SSH 身份验证。但是我遗漏了一些系统。如果我获取已添加主机的地址,我可以找到未添加主机的地址。是否有任何命令可以检索已添加主机的地址?提前致谢。
更新
awk '{print $1}' ~/.ssh/known_hosts
可以找到的输出这里。
答案1
您拥有的是散列的 known_hosts 文件,这是默认文件。这些是主机|密钥的单向散列,因此您无法恢复实际主机名。这是故意的,因为了解您访问过的所有主机并缓存了密钥(也许更重要的是,知道您没有访问过哪些主机)对于想要欺骗您与他们共享密码的人来说非常有价值。如果您使用 SSH 密钥,这还不够,因为您可能会在通过攻击者的机器登录时执行一些敏感操作。
您应该做的是 ssh 到所有机器,并在执行此操作时仔细验证指纹。一旦您拥有了所有机器,您就可以将此 known_hosts 文件分发给需要它的客户端。请注意,您可以将其放在 /etc/ssh/known_hosts 中,以便所有用户都能获得它,而不仅仅是您当前的用户。
答案2
不确定这是否是你想要的
awk '{print $1}' ~/.ssh/known_hosts
这将列出您通过 ssh 连接到的主机。