我正在尝试设置我的POST挂钩,以便在每次推送时自动更新服务器上的git repo。这很好用,当我在命令行上使用apache并执行脚本时,它运行正常 - 权限设置,ssh键工作并运行拉动。
但是当我尝试通过浏览器运行相同的脚本时,我得到一个权限被拒绝的错误 - 这里是浏览器中php脚本的输出:
$ echo $PWD
/var/www/vhosts/dev-build
$ whoami
apache
$ ssh -T git@bitbucket.org 2>&1
Permission denied (publickey).
我和命令行上的用户'apache'相同,而且一切都很好 - 我错过了什么?
答案 0 :(得分:0)
显然,你把它写下来的那一刻就变得清晰了,但无论如何我都会在这里回答,以防有人遇到同样的问题:
我确实用密码短语生成了ssh-key,然后为当前的ssh会话存储了这个密码短语。然而,当我退出然后再次进入时,我意识到它再次询问了我的密码 - 我会在输入一次时自动保存它。
所以php脚本在浏览器中运行自己的会话,没有密码并且输错了。
我用一个空的密码重新生成了ssh-key,并且瞧 - 所有这些都按预期工作。