2015-01-21 92 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