【问题标题】:SSH Key management for a CD server using a private GitHub repo使用私有 GitHub 存储库的 CD 服务器的 SSH 密钥管理
【发布时间】:2017-07-18 09:05:19
【问题描述】:

我正在设置一个持续部署 (CD) 服务器,它会定期从托管在 GitHub 上的我的私有 git 存储库中提取主分支。起初我使用自己的 SSH 密钥来克隆和拉取服务器上的代码,但我对将我的私钥留在这张 CD 上感到有些不安(我将它用于许多其他服务器)。我宁愿把我的私钥只保存在我的笔记本电脑上。目前,我正在使用专门为此部署而生成的新 SSH 密钥。但我仍然必须将它添加到我的 GitHub 密钥中,因此它授予它不需要访问的所有其他存储库的全部权限。虽然这是一项改进(因为此密钥不能用于访问我的普通密钥授予访问权限的其他一些服务器),但它仍然允许比它需要的更多的访问权限。

是否有更好、更安全的方式来管理对 git 服务器(更具体地说是 GitHub)的身份验证?有没有既定的做法?

【问题讨论】:

    标签: git github ssh


    【解决方案1】:

    在 github.com 上,您可以转到存储库页面,选择 设置 -> 部署密钥。 为此在您的机器上生成一个特定的密钥对:

    ssh-keygen -f my_private_repo
    

    上传my_private_repo.pub 的内容作为新的部署密钥,不要勾选写权限复选框。 现在,您可以在检查 CD 系统中的存储库时使用私钥。在bamboo 中,您可以添加“Git”类型的存储库,选择身份验证类型“SSH 私钥”并选择“使用自定义 SSH 密钥”。 我不知道这是否也适用于 Travis。

    【讨论】:

    • 部署密钥的问题是部署密钥只能访问 single 存储库。当你的服务器需要访问多个 repos 时,你会怎么做?
    【解决方案2】:

    显然,添加对给定存储库具有只读访问权限的部署 SSH 密钥的选项是 github 上存储库的“设置”选项卡。

    【讨论】:

      猜你喜欢
      • 2021-09-07
      • 2017-09-15
      • 2021-03-09
      • 1970-01-01
      • 2014-08-20
      • 2012-04-27
      • 2021-02-26
      • 2019-09-30
      相关资源
      最近更新 更多