gpt4 book ai didi

php - 通过 PHP 和 SSH 的 Git : ssh authentification of user apache denied

转载 作者:太空宇宙 更新时间:2023-11-04 03:54:33 26 4
gpt4 key购买 nike

我有以下设置:CentOS 6.5、git(客户端)、apache 2.2、运行测试站点等。目标是创建远程浏览器级访问来执行“git pull”。有一个使用 PHP 来实现这样的事情的通用方法。假设我有 2 个脚本,一个是 php(它被调用以直接通过浏览器执行),另一个是 shell 脚本 - 分别是 gitpull.php 和 gitpull.sh。

gitpull.php(与index.php位于同一文件夹中)内容:

<?php
$message=shell_exec("/var/www/html/...PATH-TO-INDEX.PHP.../gitpull.sh 2>&1");
?>
<小时/>

gitpull.sh 内容:

cd /var/www/html/...PATH-TO-FOLDER-WHERE-.GIT-WAS-INITIALIZED
git pull origin master:master
<小时/>

据我了解,通过调用 php 脚本,以下所有操作都将以“apache”用户身份执行,因此我通过 sudo -u apache ssh-keygen -t rsa 创建了 rsa key 。两个 key 都位于 ~/.ssh 目录中(apache 设置为访问它们),以及 /var/www 中的副本(默认情况下 apache 主文件夹,我这样做是为了避免 apache 仅使用那里的 key 时出现混淆)。我假设 key 的位置并不重要,只要它们使用“ssh-add”在 sss 中注册即可。 Apache 有权访问所有相关文件/文件夹。

我认为我的问题不在于脚本,所以我决定检查:

# ssh -T git@bitbucket.org

(效果很好, key 被接受),然后

# sudo -u apache ssh -T git@bitbucket.org

返回

Permission denied (publickey).

问题:我的设置中错过了什么?为什么apache无法通过ssh key 识别?如果我在工作中犯了错误,那么 key 必须在哪里才能让 apache 与 ssh 一起使用它们?它可以帮助以某种自定义方式编写 ssh 访问脚本吗?

最佳答案

您是否在您的 bitbucket 帐户中添加了 ssh 公钥?

关于php - 通过 PHP 和 SSH 的 Git : ssh authentification of user apache denied,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25204276/

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