Ich bin ein Hook zwischen Github und meinem Server einrichten, die automatisch neue Commits ziehen kann, wenn das Skript von Github Anfragen ausgelöst wird.Github Authentifizierung fehlgeschlagen mit Benutzer www-Daten
Es ist alles Einstellung abgeschlossen, wie ssh-keys, git Herkunft. Ich kann einen neuen Commit von meinem privaten Repo durchführen, der auf Github gehostet wird, indem ich git pull origin master
laufen lasse. Es funktioniert gut mit der Shell.
Aber wenn ich diesen Befehl in eine deploy.php
Datei schreibe, kann es von Github ausgelöst werden, aber mit Fehlermeldung.
Host key verification failed. fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.
Danach laufe ich einen Befehl whoami
durch die PHP-Datei, es gibt Benutzer www-data
.
Eigentlich habe ich generieren einen Schlüssel für www-data
Benutzer, und legte sie in /var/www/.ssh
, auch id_rsa.pub
kopiert und auf Github eingefügt, noch einen Authentifizierungsfehler haben.
- nginx
- Alle Dateien
www-data:www-data
- Ich habe gehören gesetzt
www-data
die öffentlichen Schlüssel an den deploy Schlüssel des Repo hinzufügen.
deploy.php
Befehl
shell_exec("cd /var/www/html/tinfo/; git pull origin master 2>&1;");
Meine Frage ist
- Wie ein Schlüssel für
www-data
zu schaffen? - Ist
www-data
's.ssh
directory/var/www/.ssh
? - Wenn ich nicht falsch liege, warum verweigert Github meine Verbindung? Ich schätze, es handelt sich um den Benutzer
www-data
, derdeploy.php
Datei ausführen und Befehle über PHP ausführen. - Wenn mit Github-Server gesprochen wird, sendet
www-data
nicht seinen privaten Schlüssel an den Server?
Vielen Dank.
Ich denke, das sollte ein Bash-Skript sein – meda