为什么SSH不参考/ etc / hosts?


13

我正在管理用户通过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
将-vvv添加到ssh命令后会得到什么?
混沌守护进程

Answers:


18

在我看来,问题主机的配置不正确nsswitch.conf

hosts/etc/nsswitch.conf应如下所示:

hosts:  files nisplus nis dns

但是,具体内容会因您的环境而异。您应该与正常工作的主机进行比较,并进行相应的更改。


1
对钱!我与工作中的主机进行了比较,并进行了必要的更改,然后做到了。非常感谢!如果有代表,我会投票赞成您:)
Joseph R.

@JosephR。您现在确定有代表!:-)
RockPaperLizard's
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.