Проблема с разрешениями для файла known_hosts при попытке git извлечь из PHP - PullRequest
0 голосов
/ 10 марта 2020

Я пытаюсь настроить простой PHP скрипт, который может git pull делать, когда вы go обращаетесь к определенному URL на тестовом веб-сервере AWS Amazon Linux 2 AMI, который я настроил .

Я столкнулся с некоторыми проблемами, пытаясь это сделать, и с тех пор следил за этой статьей, чтобы попытаться разобраться: https://jondavidjohn.com/git-pull-from-a-php-script-not-so-simple/

Я застрял на шаге, где автор говорит запустить sudo -u www git pull.

В моей системе apache - это пользователь Apache, для которого нам нужно сделать git pull, чтобы добавить обязательно S SH ключевая информация, но она не работает. Когда я пытаюсь запустить следующее:

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.

Я не знаю, если это проблема, но нет .ssh каталог под /usr/share/httpd. В ~/.ssh есть файл known_hosts, так что, может быть, мне стоит побеспокоиться? Я не совсем уверен.

Это очень похоже на ошибку прав доступа (сообщение об ошибке так же подсказывает), но я действительно не уверен, какой файл, где нужно изменить и как. Любой совет будет принята с благодарностью. Спасибо.

1 Ответ

0 голосов
/ 11 марта 2020

Большое спасибо ArSeN за то, что он помог мне пройти через процесс в наших комментариях выше и выше. Что в конечном итоге решило это для меня, так это изменив разрешения для /usr/share/httpd dir, где ключ apache пользователя S SH должен go, а затем скопировав ключ S SH, который уже используется, ec2-user поверх в этот каталог.

Вот команды, которые я выполнял:

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.

...