gpt4 book ai didi

php - Git 从 Bitbucket 服务器 pull

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:47:56 25 4
gpt4 key购买 nike

我在从远程服务器上的 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 调用它。

  1. .sh 脚本:

    #!/bin/sh
    git pull
  2. 和 PHP 脚本:

    <?php    
    $cmd="./gitpullsc.sh 2>&1";
    echo exec($cmd);
    ?>

我从网络浏览器运行 php 脚本,然后返回:

Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights and the repository exists.

然后我尝试将 whoami 添加到脚本中(以查看运行 php 脚本的用户是否正确),然后我得到了 apache。所以一切正常。

我使用红帽 linux。

感谢任何帮助:)

更新

好吧,也许我发现了问题,但仍在寻找解决方案。

我再次运行 sudo -u apache git pull,现在我再次被要求输入私钥密码。

但是如果我运行命令 ssh-add -l 我得到:

2048 ***thenumber** /var/www/.ssh/id_rsa (RSA)

所以我认为一切都很好。但问题可能是我以这种方式运行 ssh 代理:

ssh-agent /bin/bash

更新

是的,问题确实出在密码短语提示上。我仍然不知道如何修复它,但现在我只是将密码短语留空并且它可以工作...

最佳答案

我回答过类似的问题。我真的很想针对该答案添加评论,但我没有足够的分数来添加评论。

想法是使用一次启动 ssh-agent 并将您的 key 加载到它。稍后,在您的 .bashrc 中,您更新环境变量,使其指向同一个 ssh-agent(已经有 key )。

请看trying to deploy using Capistrano but ssh-agent on my remote machine doesn't keep my identity loaded so the git command fails; why?

关于php - Git 从 Bitbucket 服务器 pull ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17774281/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com