PHP (веб-сервер), скорее всего, не работает под тем же пользователем , который вы используете при подключении SSH к серверу. Таким образом, он не имеет доступа / разрешения / не использует правильные ключи SSH для аутентификации против GitHub.
Я могу придумать 2 простых решения:
Добавьте это правило в sudo-conf (sudo visudo
), чтобы пользователь www-data
мог запускать (только) /usr/bin/git
как yourotheruser
:
www-data ALL=(yourotheruser) NOPASSWD: /usr/bin/git
Теперь вы можете вызывать git
, используя:
sudo -u yourotheruser git pull
Совет безопасности: Чтобы ограничить потенциальный ущерб, если кому-то удастся выполнить произвольный код с помощью www-data
:
Создайте скрипт, принадлежащий yourotheruser
(и недоступный для записи другим), например, /home/yourotheruser/deploy.sh
с содержанием:
cd /path/to/repo
git pull
И разрешить sudo
доступ только к этому сценарию. Таким образом, никакие другие действия git
, кроме pull
в указанном каталоге, не могут быть выполнены.
- Изменение Сам пользователь PHP выполняется с:
- Использование
php-fpm
- Используйте
ITK MPM