Git pull from php

(Actually we could create the ssh key inside vult server connected with ssh from our console, so we can copy it and paste at github, but I need to test it first)

Check if there is already a ssh key in your server:

ls -al ~/.ssh

Create a new ssh key in your machine:

ssh-keygen -t rsa -b 4096

Get the private key and copy it from your console:

cat id_rsa

Add the new key to github repository as deployment key https://github/user/repo/settings/keys

Enter in vultr server with ssh

(To see the root password: got at https://my.vultr.com/-> select server-> Overview-> Show Password):

ssh root@server-address.com

Inside vultr server, create a ssh folder for www-data user and add the private key

cd /var/www
# www-data need write access to the repo folder
chown -R www-data:www-data repo
mkdir .ssh
chown -R www-data:www-data .ssh
nano .ssh/id_rsa
# paste here the content of private and save the file

Now confirm that www-data user can connect to git

sudo -u www-data ssh -T git@github.com

If succes now you can pull the repository from php:

exec('git pull git@github.com:user/repo.git 2>path_to_error_file');

 

https://www.vultr.com/docs/how-do-i-generate-ssh-keys/

https://help.github.com/en/enterprise/2.15/user/articles/adding-a-new-ssh-key-to-your-github-account