2015-01-21 63 views
0

上运行命令,我需要看到这一点,我已经开发了一个Solaris机器上一个Perl CGI脚本browser.For的DataPower的服务当前状态。采用Perl CGI:远程计算机

我有一台cgi网络服务器,在这台服务器上我没有与DataPower设备的直接连接。我通过脚本连接到远程Solaris服务器'sun-rm',该服务器连接到DataPower设备。

在脚本中使用以下两条语句我试图运行远程服务器'sun-rm'上的命令,它将获取daatpower服务的当前统计信息。

system('ssh [email protected] "cd /tmp/dp/status; ./getstatus"'); system('scp -rp [email protected]:/tmp/dp/status/DPlive_Status /opt/webserver/https-util/cgi-bin2/datapower/');

但似乎是网络服务器是不是能充分利用“阳光-RM”服务器的安全连接,因为我可以在错误日志中看到以下错误。

Host key verification failed

现在,由于一些安全原因,我CNT“太阳-RM”服务器的密钥添加到Web服务器的信任库中。有什么方法可以在远程机器上运行这些命令?

此外,该web服务器安装在solaris机器'sun-util'上,从中我可以通过ssh执行'sun-rm'。但是由于上面提到的原因,从web服务器到'sun-rm'的ssh连接不能建立。

我可以理解,这可能是一个比较混乱的问题,请让我知道在任何情况下,更需要explianation?

由我开发的脚本如下:

#!/usr/bin/perl 
use strict; 
use warnings; 
use diagnostics; 

    printf "Content-type: text/html\n\n"; 

    print <<HTML; 
    <HTML> 
    <HEAD> 
     <TITLE>DataPower_Status</TITLE> 
    </HEAD> 
     HTML 

    system('ssh [email protected] "cd /tmp/dp/status; ./getstatus"'); 
    system('scp -rp [email protected]:/tmp/dp/status/DPlive_Status  /opt/webserver7/https-util/cgi-bin2/datapower/'); 

chmod(0777, '/opt/webserver7/https-util/cgi-bin2/datapower/DPlive_Status'); 

open (FILE, "DPlive_Status") or die "could not open filename"; 
    while(<FILE>) { 
    if ($_ =~ m/^Service/) 
     { 
      printf "<TR><TD><H4>$_</H4></TD></TR>\n"; 

     } 
     else { 

      printf "<TR><TD><p>$_</p></TD></TR>\n"; 
     } 
     } 
    close FILE; 

     print <<HTML; 
      </body> 
      </html> 
      HTML 

回答

1

这是一个SSH的错误,这意味着缓存的主机密钥身份是无效的。这通常发生在如果你拥有一个集群并且具有不同的ssh主机密钥的情况下 - 你的客户端在.ssh/known_hosts中缓存了该主机名的密钥。

第一种解决方法是从known_hosts删除密钥,然后重试。第二种解决方法是启用ssh选项来禁用严格的主机密钥检查。 StrictHostKeyChecking=no

但首先你真的想确定为什么主机密钥无效 - 这可能是个坏消息。 (更可能是服务器重建,群集迁移或类似的事情,但它确实支付检查)

+1

-1用于暗示禁用主机密钥检查。这真的不是一个好主意。为什么我们不再使用telnet?还有其他的可能性,例如了解所有主机密钥或在所有群集节点之间共享一个主机密钥。 – 2015-01-21 10:50:33

+1

因为telnet发送的东西都是明文的,其中ssh不是?因为telnet不允许公用密钥auth哪里ssh不?是的,禁用主机密钥检查是一个风险。与所有风险一样,您需要评估是否值得考虑。 – Sobrique 2015-01-21 11:06:46