我可以使用循环 DNS 进行 ssh 主机密钥验证吗?

我可以使用循环 DNS 进行 ssh 主机密钥验证吗?

我正在登录基于循环 DNS 主机名的服务器——“login.example.com”可以转到许多服务器中的任何一个。理想情况下,我希望能够更新我的 known_hosts 文件,以便可以访问任何一台机器而不会出现警告/错误,不过我猜如果有某种方法可以让所有服务器都显示相同的指纹/主机密钥,那么后备方案就是这样做。我见过类似这样的帖子但“选择一个静态 IP 进行登录”并不是一个真正的选择。我想要一个真实的如果有的话,解决方案。

答案1

如果你不需要安全的区分循环集群中机器的一种方法,只需将一个主机密钥复制到集群中的每台机器即可。

这意味着您的 SSH 主机密钥检查可以肯定地告诉您它在集群中,但不能肯定地告诉您它是集群中的哪台特定机器。您可以依靠静态 IP 地址(或 的输出hostname)作为区分集群中机器的非安全方式。

答案2

由于 ssh 是为了确保不存在 DNS 欺骗风险而创建的,因此没有真正好的方法来做到这一点。 也就是说,您可以使用以下解决方法:

ssh $(nslookup login.example.com | grep -v '#' | grep -m1 '^Address:' | cut -d \  -f 2)

基本上,这将查找 ip,然后使用 IP 地址而不是主机名,这应该可以消除您的问题,除非服务器也更改了 IP 地址。

答案3

这是我发现的作品......

  1. 删除 ~/.ssh/known_hosts 中主机的所有现有条目
  2. 获取主机映射到的完整 IP 地址列表,然后对每个 IP 地址进行...
ssh-keyscan -H -t rsa 10.X.X.X >> ~/.ssh/known_hosts

那么你就不会再看到问题了……如果你使用主机名

ssh 主机名。

G

相关内容