如何确保远程git用户在post接收钩子中执行某些命令?
希望我不会破坏这个对我的设置的解释。我目前正在调用远程机器上的一个裸机回购,以触发一个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
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
,但密钥名为其他名称。