我在Github和我的服務器之間建立了一個鉤子,當Github請求觸發腳本時,它可以自動提取新的提交。Github身份驗證失敗,用戶www-data
它的所有設置完成,如ssh-keys,git origin。我可以通過運行git pull origin master
從我在Github上託管的私人回購中提取新的提交。它的外殼工作正常。
但是,當我將該命令寫入deploy.php
文件時,它可以由Github觸發,但帶有錯誤消息。
Host key verification failed. fatal: Could not read from remote repository.
Please make sure you have the correct access rights and the repository exists.
在那之後,我通過PHP文件運行命令whoami
,它返回用戶www-data
。
其實我爲www-data
用戶生成了一個密鑰,並把它們放在/var/www/.ssh
,也拷貝了id_rsa.pub
並粘貼到Github,仍然有認證失敗。
- nginx的
- 所有文件都設置爲屬於
www-data:www-data
- 我有加
www-data
的公鑰來回購的部署密鑰。
deploy.php
命令
shell_exec("cd /var/www/html/tinfo/; git pull origin master 2>&1;");
我的問題是
- 如何創建
www-data
的關鍵? - 是
www-data
的.ssh
目錄/var/www/.ssh
? - 如果我沒有錯,爲什麼github會拒絕我的連接?我想這與用戶
www-data
有關,他們執行deploy.php
文件並通過PHP運行命令。 - 當與Github服務器通話時,
www-data
是否未將其私鑰發送到服務器?
非常感謝。
我認爲這應該是一個bash腳本 – meda