如何使用 SSH 密钥对同一服务器上的两个单独的 Github 存储库进行身份验证?

时间:2020-12-21 02:25:08

标签: git github ssh

我们有一个运行 Ubuntu 20.04 的测试服务器。我们正在测试的项目有一个基于 Vue 的 Web 应用程序和一个基于 PHP 的 CMS。

每个组件在 Github 中都有自己的存储库:

OurCompany/project-app
OurCompany/project-cms

在测试服务器上,Git 存储库位于以下目录中:

/home/root/app-build
/var/www/cms

两者都有运行 git pull 的部署脚本,以使用存储库中的最新更改来更新代码。身份验证通过 SSH 部署密钥进行。

我一直在关注 Github instructions here,它说我需要更改配置 SSH 配置文件以使用不同的 SSH 密钥:

Host github.com-project-app
        Hostname github.com
        IdentityFile=/home/root/.ssh/app_deploy_key

Host github.com-project-cms
        Hostname github.com
        IdentityFile=/home/root/.ssh/cms_deploy_key

我还将 /home/root/app-build/.git/config/var/www/cms/.git/config 中的存储库更新为

[remote "origin"]
    url = git@github.com-project-app:OurCompany/project-app.git

&

[remote "origin"]
    url = git@github.com-project-cms:OurCompany/project-cms.git

理论上,我们现在应该使用匹配的部署密钥访问两个存储库?

但是,只有 project-cms 验证和测试 SSH 返回以下内容:

#ssh -T git@github.com-project-cms
Hi OurCompany/project-cms! You've successfully authenticated, but GitHub does not provide shell access.

#ssh -T git@github.com-project-app
Hi OurCompany/project-cms! You've successfully authenticated, but GitHub does not provide shell access.

因此,即使使用 project-cms 主机名,它也只对 project-app 进行身份验证。

关于发生了什么以及我如何解决它的任何想法?

1 个答案:

答案 0 :(得分:0)

您需要确保:

  • /home/root/.ssh/app_deploy_key/home/root/.ssh/cms_deploy_key 不同,
  • /home/root/.ssh/app_deploy_key.pub 公共 deploy key 已注册到正确的 GitHub project-app“部署密钥”设置。