我試圖在使用PHP的SSH2的腳本運行時在我的兩臺服務器之間打開一個SSH連接,並在某處使用來自http://kvz.io/blog/2007/07/24/make-ssh-connections-with-php/的信息。這就是說,使用下面的代碼,我一直未能通過身份驗證。看起來這兩個服務器正在通信,但根本沒有進行身份驗證,因爲我得到了「失敗:無法驗證」消息。我可以使用相同的信息直接使用Web服務器的終端直接連接。值是通用的,原因很明顯。如果這意味着什麼,SSH服務器就是運行Mountain Lion的Mac(它運行的是OS X虛擬機),Web服務器運行Ubuntu 12.04。使用php的ssh2進行身份驗證的問題
<?php
if (!function_exists("ssh2_connect")) die("function ssh2_connect doesn't exist");
if(!($con = ssh2_connect('192.168.0.1', 22))){
echo "fail: unable to establish connection\n";
} else {
if(!ssh2_auth_password($con, 'myusername', 'mysecretpassword')) {
echo "fail: unable to authenticate\n";
} else {
echo "okay: logged in...\n";
// execute a command
if (!($stream = ssh2_exec($con, "mysshcommand"))) {
echo "fail: unable to execute command\n";
} else {
stream_set_blocking($stream, true);
$data = "";
while ($buf = fread($stream,4096)) {
$data .= $buf;
}
fclose($stream);
}
}
}
?>