![对于可解析的名称,SSH 客户端名称解析失败](https://linux22.com/image/627894/%E5%AF%B9%E4%BA%8E%E5%8F%AF%E8%A7%A3%E6%9E%90%E7%9A%84%E5%90%8D%E7%A7%B0%EF%BC%8CSSH%20%E5%AE%A2%E6%88%B7%E7%AB%AF%E5%90%8D%E7%A7%B0%E8%A7%A3%E6%9E%90%E5%A4%B1%E8%B4%A5.png)
我们有一个 Linux 机器(称为jumper
),用于访问几个单独的 DMZ 中的服务器。每个 DMZ 都有自己的子域名(例如idmz.example.org
,jdmz.example.org
),每个子域名都有自己的权威名称服务器。
我们正在用新的 Linux 机器替换旧的 Solaris 跳线。大多数事情都运行良好,但我们在idmz.example.com
使用 SSH 连接到子域中的服务器时遇到了问题。Ping 工作正常;我们可以使用 解析名称dig
,但 SSH 显示“无法解析”。
名称解析在服务器端运行良好,当我们使用 IP 地址连接时,没有延迟或超时。但客户端的 SSH 声称无法解析服务器。
Ping 并且 SSH 连接失败:
jenny@jumper$ ping server.idmz.example.com
PING server.idmz.example.com (192.168.1.3) 56(84) bytes of data.
jenny@jumper$ ssh -v server.idmz.example.com
OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
ssh: Could not resolve hostname server.idmz.example.com: Name or service not known
使用 IP 而不是主机名成功建立 SSH 连接:
jenny@jumper$ ssh 192.168.1.3
[email protected]'s password:
我从客户端看到的一个区别是,我无法从名称服务器获得权威答案idmz
,但我可以从所有其他 DMZ 域获得答案。
答案1
我们联系了 DNS 服务器的系统管理员,并要求他们验证 的设置idmz
。结果发现,他们的名称服务器声称可以处理 IPV6,但无法为 IPV6 查询提供正确答案。
在 Solaris 服务器上,默认使用 IPV4。在新的 Linux 服务器上,SSH 首先尝试 IPV6。在这种情况下,这意味着由于它无法使用 IPV6 解析服务器名称,因此它认为该名称不可解析。对于其他 dmz 域,即使使用 IPV6,名称服务器也会给出正确的响应。
我们修改了 SSH 的配置,使其包括
AddressFamily inet
问题就解决了。