使用私有GitHub存储库的CD服务器的SSH密钥管理

时间:2017-07-18 09:05:19

标签: git github ssh

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

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

2 个答案:

答案 0 :(得分:2)

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

ssh-keygen -f my_private_repo

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

答案 1 :(得分:0)

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