从Nagios服务器执行的check_ssh返回“服务器答案:”,没有别的

Commmand在我需要监视的主机上工作(其IP在这里表示为$ HOSTADDRESS $):

[root@host ~]# /usr/local/nagios/libexec/check_ssh localhost SSH OK - OpenSSH_4.3 (protocol 2.0) 

但是,在Nagios服务器上,它不会:

 root@server:~# /usr/lib/nagios/plugins/check_ssh -H $HOSTADDRESS$ Server answer: 

我可以看到端口是开放的:

 root@server:~# /usr/lib/nagios/plugins/check_tcp -H $HOSTADDRESS$ -p 22 TCP OK - 0.123 second response time on port 22|time=0.123277s;;;0.000000;10.000000 

我可以用telnetvalidation:

 root@server:/etc/nagios3/conf.d# telnet $HOSTADDRESS$ 22 Trying $HOSTADDRESS$... Connected to $HOSTADDRESS$. Escape character is '^]'. 

在网上search了两个小时,并尝试了不同的build议,我没有想法。 我有几个其他主机有类似的设置,他们没有这个问题。 我比较了configuration,他们看起来相同(我认为)。

我显然在这里错过了一些东西。

我有同样的问题来检查安装在Windows(KpyM Telnet / SSH服务器)上的OpenSSH服务器,我正在使用Nagios linux服务器中的check_ssh检查端口。

使用“ check_ssh ”,我得到了答案“服务器答案”与端口22上的“ check_tcp ”: SSH OK

在Windows上的SSH服务器日志中,nagios服务器的IP位于被禁止的IP中。

我删除了IP在禁止的IP和check_ssh现在好了:

check_ssh现在回答: SSH OK - cryptlib (protocol 2.0)

也许它有帮助。 可能不是相同的软件,但也许是相同的行为。

您是否在Nagios服务器和您要检查的服务器之间设置无密码SSH?

这需要设置,因为它不能用密码提示。 你可以通过连接到nagios服务器来检查这个,并尝试SSH到你想要检查的服务器上作为nagios用户,看看它是否提示你input密码。

另外telnet不是SSH,它是一个完全不同的协议!