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