上運行命令,我需要看到這一點,我已經開發了一個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用於暗示禁用主機密鑰檢查。這真的不是一個好主意。爲什麼我們不再使用telnet?還有其他的可能性,例如瞭解所有主機密鑰或在所有羣集節點之間共享一個主機密鑰。 – 2015-01-21 10:50:33
因爲telnet發送的東西都是明文的,其中ssh不是?因爲telnet不允許公用密鑰auth哪裏ssh不?是的,禁用主機密鑰檢查是一個風險。與所有風險一樣,您需要評估是否值得考慮。 – Sobrique 2015-01-21 11:06:46