我正在管理一个网络环境,其中用户通过 NIS 进行身份验证。除一台机器外,所有机器都可用于通过 SSH 连接到服务器。在有问题的机器上,我收到消息
ssh: connect to host servername port 22: Connection refused
我比较了strace
有问题的机器和可以正确通过 SSH 连接到服务器的机器的输出。
事实证明,无法通过 SSH 连接到服务器的计算机不会进行协商,/etc/hosts
而能够通过 SSH 正确连接的计算机却可以进行协商。两台机器都/etc/hosts
设置了服务器的名称和IP。最后,不咨询的机器/etc/hosts
最终尝试连接到127.0.0.1
(localhost)并失败并显示上述消息。可能是什么原因造成的?
附加信息:
- 我尝试通过 SSH 访问的服务器也充当名称服务器,并且两台计算机在尝试通过 SSH 访问时都会查阅该服务器。
- 当我这样做时,无法通过 SSH 连接到服务器的计算机可以正确地通过 SSH 连接到其他计算机
ssh machinename
日志strace
显示该计算机咨询名称服务器(这次成功)并成功解析远程计算机名称并连接到它。
编辑:我很乐意提供您认为可能有助于解决此问题的任何其他信息。
答案1
在我看来,问题主机没有正确配置nsswitch.conf
.
该hosts
行/etc/nsswitch.conf
应该看起来像这样:
hosts: files nisplus nis dns
但是,具体内容会因您的环境而异。您应该与工作主机进行比较并做出相应的更改。