known_hosts在尝试从PHP进行git pull时出现文件权限问题



我正在尝试设置一个简单的PHP脚本,当您转到我设置的AWS Amazon Linux 2 AMI测试web服务器上的特定URL时,该脚本可以执行git pull

不过,我在尝试这样做时遇到了一些问题,从那以后,我一直在关注这篇文章,试图解决问题:https://jondavidjohn.com/git-pull-from-a-php-script-not-so-simple/

我被困在作者说要运行sudo -u www git pull的步骤上。

在我的系统中,apache是Apache用户,我们需要为其执行git pull,以便添加必要的SSH密钥信息,但它不起作用。当我尝试运行以下程序时:

sudo -u apache git pull

我得到以下错误:

Failed to add the host to the list of known hosts (/usr/share/httpd/.ssh/known_hosts).
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

我不知道这是否是一个问题,但/usr/share/httpd下没有.ssh目录。~/.ssh下有一个known_hosts文件,所以也许这就是我需要担心的那个?我真的不确定。

这感觉很像是一个权限错误(错误消息也暗示了这一点(,但我真的不确定需要在哪里以及如何更改什么文件。如有任何建议,我们将不胜感激。非常感谢。

非常感谢ArSeN在我们上面的评论中为我介绍了整个过程。对我来说,最终解决这个问题的是更改apache用户SSH密钥需要所在的/usr/share/httpd目录的权限,然后将ec2-user已经使用的SSH密钥复制到该目录。

以下是我运行的命令:

sudo chown -R ec2-user:apache /usr/share/httpd
sudo chmod -R 777 /usr/share/httpd
sudo cp -r /home/ec2-user/.ssh/ /usr/share/httpd/.ssh/
sudo chown -R ec2-user:apache /usr/share/httpd
sudo chmod -R 755 /usr/share/httpd
sudo chown -R ec2-user:apache /var/www
cd /var/www/project-name/
sudo -u apache git pull
sudo chown -R ec2-user:apache /var/www

正如您在命令中看到的那样,无论出于什么原因,我都必须运行chown几次才能正确设置用户/组的内容,但最终它起了作用,我能够得到我想要的东西。再次感谢ArSeN。

尝试删除know_hosts,然后重试:

rm ~/.ssh/known_hosts

在权限不足的情况下:

sudo chmod -R 700  ~/.ssh/

相关内容

  • 没有找到相关文章

最新更新