如何确保远程git用户在post接收钩子中执行某些命令?

如何确保远程git用户在post接收钩子中执行某些命令?,git,permissions,github-pages,git-post-receive,Git,Permissions,Github Pages,Git Post Receive,希望我不会破坏这个对我的设置的解释。我目前正在调用远程机器上的一个裸机回购,以触发一个post接收钩子,如下所示: cd /path/to/working/tree git pull gatsby build && gh-pages -d public/ 在部署步骤中,gh-pages通过GitHub上的另一个repo将更改推送到GitHub页面之前,一切都按预期进行。当通过本地机器上的git push触发post-receive钩子时,我会得到一个remote:Permiss

希望我不会破坏这个对我的设置的解释。我目前正在调用远程机器上的一个裸机回购,以触发一个post接收钩子,如下所示:

cd /path/to/working/tree
git pull
gatsby build && gh-pages -d public/
在部署步骤中,
gh-pages
通过GitHub上的另一个repo将更改推送到GitHub页面之前,一切都按预期进行。当通过本地机器上的
git push
触发post-receive钩子时,我会得到一个
remote:Permission denied(publickey)
,但是当直接在远程机器上运行时,它会成功

我猜当钩子从本地机器触发时,
gh页面
的执行是由不同的用户完成的,尽管我的
git remote
配置指定了正确的远程用户

staging [remote_user]@[remote_ip]:/path/to/bare/repo.git (fetch)
staging [remote_user]@[remote_ip]:/path/to/bare/repo.git (push)
任何帮助都将不胜感激

我猜当钩子从我的本地机器触发时,gh页面的执行是由不同的用户完成的

您可以通过修改post接收挂钩并添加到其中来检查:

id -a
export GIT_SSH_COMMAND='ssh -Tv'

这样,您就可以确切地看到该钩子上考虑的id和SSH密钥。

谢谢!这表明git默认尝试
id\u rsa.pub
,但密钥名为其他名称。