【问题标题】:PHP Git Pull from GitHub Script SSHPHP Git 从 GitHub 脚本 SSH 拉取
【发布时间】:2013-08-18 13:39:01
【问题描述】:

这是我第一次尝试使用 GitHub 服务挂钩自动部署到我的服务器;在慢慢地克服每一个障碍之后,看起来最后一个障碍就是让我陷入困境的那个。

我的 git 存储库到我的 Web 服务器的初始克隆是通过 SSH 完成的,我很确定这与我现在的问题有关。我当前的脚本是基本的:

<?php 
    echo(shell_exec('git pull 2>&1')); 
?>

但它返回“权限被拒绝(公钥)。致命:远程端意外挂断”;我知道这是脚本未能放入我创建的 SSH 密码短语的地方。我尝试研究如何克服它,但我什至不知道这些是否是正确/最安全的事情。

那么可以修改它以从这里开始工作,还是我需要回溯几个步骤并从使用 SSH 开始?

谢谢

【问题讨论】:

    标签: php git github ssh


    【解决方案1】:

    你可以尝试替换(在你的 git.config 文件中)

    ssh://github.com/<username>/<project>.git 
    

    https://github.com/<username>/<project>.git
    

    git@github.com:<username>/<project>
    

    【讨论】:

    • 这是当前远程原点设置的内容。
    【解决方案2】:

    Apache 可能以不同于您通常通过 CLI 运行 git 的用户身份运行。您可能需要将您的.ssh/id_rsa 文件从/home/regularuser/ 复制到/home/webuser/

    【讨论】:

    • ssh 在 /.ssh/id_rsa 内
    • 那么两个用户的 .ssh/id_rsa 文件中已经拥有相同的 SSH 私钥了吗?
    • 我无法访问多个用户;一切都在家里。我可以从 CLI SSH 进入服务器并运行 Git Pull。这会产生与从服务器本身执行 Git Pull 相同的结果。任何一个都请求输入密码短语,但我实际上只能输入其中一个。
    猜你喜欢
    • 1970-01-01
    • 2018-06-04
    • 2021-04-26
    • 2010-12-15
    • 1970-01-01
    • 2012-12-28
    • 2013-08-09
    • 2014-09-23
    • 1970-01-01
    相关资源
    最近更新 更多