我从远程服务器上的 php 脚本运行 git pull 时遇到问题。我查看了很多不同的资源来使其工作,但没有一个对我有用。那么到目前为止我做了什么:
为 Apache 创建了公钥和私钥:
mkdir /var/www/.ssh sudo chown -R apache:nobody /var/www/.ssh su - apache -c "ssh-keygen -t rsa"
然后我将我的公钥放在 Bitbucket 上。
然后我运行命令:
sudo -u apache git pull
一切正常。
毕竟我写了一个简单的sh
脚本,我从PHP
.
.sh 脚本:
#!/bin/sh git pull
和 PHP 脚本:
<?php $cmd="./gitpullsc.sh 2>&1"; echo exec($cmd); ?>
我从网络浏览器运行 php 脚本,我得到了这个:
权限被拒绝(公钥)。
致命:无法从远程存储库中读取。请确保您具有正确的访问权限并且存储库存在。
然后我尝试添加到脚本whoami
(以查看运行 php 脚本的用户是否正确),然后我得到了 apache。所以一切正常。
我使用红帽 Linux。
任何帮助表示赞赏:)
更新
好的,也许我发现了问题,但仍在寻找解决方案。
我再次运行sudo -u apache git pull
,现在我再次被要求输入私钥密码。
但是,如果我运行命令ssh-add -l
,我会得到:
2048 * **号码** /var/www/.ssh/id_rsa (RSA)
所以我认为一切都很好。但问题可能是我以这种方式运行 ssh 代理:
ssh-agent /bin/bash
更新
是的,问题确实是密码提示。我仍然不知道如何修复它,但现在我只是将密码留空并且它可以工作......