![当 SSH 出现异常行为时,GetAddrInfo](https://linux22.com/image/733998/%E5%BD%93%20SSH%20%E5%87%BA%E7%8E%B0%E5%BC%82%E5%B8%B8%E8%A1%8C%E4%B8%BA%E6%97%B6%EF%BC%8CGetAddrInfo.png)
我有一台托管在 Rackspace 上的服务器。我们把该服务器称为 foo。该服务器 foo 的域(它是一台 Web 服务器)托管在 DNSMadeEasy 上。我注意到此设置的一些奇怪行为,并希望弄清楚它。
当我从 AWS/GCE 基础设施通过 SSH 连接到服务器 foo 时,收到以下警告消息:
[user1@bastion-server ~]$ ssh foo
reverse mapping checking getaddrinfo for xxx-xxx-xxx-xxx.static.cloud-ips.com [xxx.xxx.xxx.xxx] failed - POSSIBLE BREAK-IN ATTEMPT!
Last login: Tue Feb 19 16:56:30 2019 from xx.xx.xx.xx
[user1@foo ~]$
我知道如何解决这个问题,我可以做以下两件事之一:
- 在由 rackspace 托管的 DNS 服务器中添加条目
/etc/hosts
或添加 PTR 记录。
我无法在 DNSMadeEasy 中添加 PTR,因为 IP 本身解析为 rackspace 的 DNS。我们没有在 rackspace 中设置 DNS,因为它托管在 DNSMadeEasy 上。但这就是奇怪的地方。我可以从本地 PC 或我的一台物理服务器通过 SSH 连接到 foo,但我不会收到该警告消息。我在 /etc/hosts 中没有任何条目,所以我不明白为什么没有发生这种情况。有人能告诉我为什么会发生这种情况吗?
答案1
您的本地 PC 仅找到其请求的 IP 的一个主机名,无论它从何处发出该请求。如果您从本地 PC 执行 nslookup,然后将这些结果与从堡垒服务器执行 nslookup 时看到的结果进行比较,您很可能会发现导致您体验的寻址源差异。