我正在尝试使用 PHP 的 SSH2 在脚本运行时打开我的两台服务器之间的 SSH 连接,并使用来自http://kvz.io/blog/2007/07/24/make-ssh-connections-with-php的信息到达某个地方/。也就是说,使用以下代码,我一直无法进行身份验证。似乎两台服务器正在通信,但根本没有进行身份验证,因为我收到“失败:无法验证”消息。我可以使用相同的信息直接使用 Web 服务器的终端轻松连接。出于显而易见的原因,值是通用的。如果这意味着什么,SSH 服务器是运行 Mountain Lion(它运行 OS X VM)的 Mac,而 Web 服务器运行 Ubuntu 12.04。
<?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);
}
}
}
?>