php在没有sudo的情况下执行ssh git pull脚本(主机验证错误)

时间:2018-10-16 21:39:04

标签: php git ssh

我要做什么

我在bitbucket上有一个git存储库。从本地计算机推送到存储库后,我想自动将master分支拉到我的网站空间。

我到目前为止所做的事情

我使用ssh连接到服务器,创建了ssh密钥,并在github上注册了公共密钥。 我创建了一个.sh脚本,该脚本使用ssh拉了master分支-到目前为止,如此-当我从命令行/ putty运行脚本时,一切正常

出了什么问题

我想通过Bitbucket上的Webhook触发.sh脚本(我可以提供一个URL)。为此,我在网站空间中创建了一个.php文件:

<?php
$output = shell_exec('./deploy.sh 2>&1');
echo $output;

我的.sh脚本如下所示:

#!/bin/bash
git pull git@bitbucket.org:dualmeta/test.git master

正如已经说过的那样,使用腻子运行.sh脚本可以很好地工作。但是,如果我在浏览器中输入.php文件的网址,则会出现错误:

Host key verification failed.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

我已经做过一些研究,发现很多人都有完全相同的问题。但是,就我而言,我没有root / sudo访问权限,因为它是租用的Web空间,而不是我自己的vServer。

有没有机会使它起作用?

1 个答案:

答案 0 :(得分:0)

您必须将访问www-data或apache用户添加到git目录中。

chown -R apache:apache git_directory

chown -R www-data:www-data git_directory

chmod o+rw -R git_directory

也使用它:

git config credential.helper store