我正在尝试从浏览器中运行一个php脚本来执行git pull操作,但是我遇到了"sh: connect to host git.assembla.com port 22: Permission denied"的错误提示。
我的php脚本:
<?php
$output=array();
$returnVar=0;
chdir("/var/www/html");
exec('git pull git@git.assembla.com:andrewadel.git master 2>&1', $output , $returnVar);
// exec('pwd', $output , $returnVar);
echo "<pre>\n";
echo "return status: $returnVar\n\n";
print_r($output);
echo "</pre>\n";
当我手动用“apache”运行脚本时,一切正常。
bash-4.1$ whoami
apache
bash-4.1$ php gitsync.php
<pre>
return status: 0
Array
(
[0] => From git.assembla.com:andrewadel
[1] => * branch master -> FETCH_HEAD
[2] => Already up-to-date.
)
</pre>
当我从浏览器运行它时,它失败了。
http://103.7.164.33/gitsync.php?111
return status: 1
Array
(
[0] => ssh: connect to host git.assembla.com port 22: Permission denied
[1] => fatal: The remote end hung up unexpectedly
)
谢谢
然后,在php中运行 exec('ssh -v git@assembla.com 2>&1', $output , $returnVar);
返回状态:255数组 ( [0] => OpenSSH_5.3p1,OpenSSL 1.0.0-fips 29 Mar 2010 [1] => 伪终端将不会分配,因为stdin不是终端。 [2] => debug1:读取配置数据/ etc / ssh / ssh_config [3] => debug1:应用于* [4] => debug1:连接到assembla.com [64.250.188.41]端口22。 [5] => debug1:连接到地址64.250.188.41端口22:拒绝访问 [6] => ssh:无法连接到主机assembla.com端口22:权限被拒绝 ) - user1554046