我有一个系统,当我将更改推送到我的存储库时,一个Web钩子向我的站点发送一个请求,该请求运行一个bash脚本来提取更改并复制任何更新的文件。
我添加了第二个存储库,其中包含自己的部署密钥,但在执行此操作后,我在尝试提取更改时收到了权限被拒绝错误。
有没有办法在同一台服务器上使用2个部署密钥?
git pull
命令提前感谢您的帮助!欢迎任何其他建议!
编辑帖子以反映真实问题,因为它与我的不同(如果这是不好的做法,请随意回复),请参阅下面的答案了解详情和解决方案
答案 0 :(得分:0)
我认为身份验证的问题是什么实际上git服务的问题是不知道使用哪个ssh密钥,因为我在服务器上有多个。
解决方案是在.ssh文件夹中使用配置文件并指定别名以指定在单独的存储库中用于git操作的ssh密钥。
解决方案在这里:Gist with solution
这个要点解释了一般的想法,它建议使用子域,但是进一步向下的注释使用的是看似更整洁的别名。
我现在已经解决了这个问题,系统运行正常,只有一个只读密码,无密码的部署密钥。
答案 1 :(得分:0)
这可以通过自定义GIT_SSH_COMMAND来完成。由于ssh .config仅获取主机,因此您必须创建别名以处理不同的路径。另外,作为GIT_SSH_COMMAND的git CLI sends the path of the repo,您可以在git和ssh之间添加的自定义脚本中拦截请求。
您可以创建一个解决方案,在其中提取路径并添加相关的身份文件(如果在服务器上可用)。
可以找到一种执行此操作的方法here。
用法:
cp deploy_key_file ~/.ssh/git-keys/github-practice
GIT_SSH_COMMAND=custom_keys_git_ssh git clone git@github.com:github/practice.git