Github:使用ssh键只能在一个存储库或组织中使用

时间:2019-05-09 23:24:08

标签: git github ssh-keys

是否可以创建一个只能访问一个存储库或一个组织的SSH密钥,而其他所有存储库或组织都将被拒绝?

例如,您可以访问以下4个存储库:

git@github.com:MyUser/repo-u1.git
git@github.com:MyUser/repo-u2.git
git@github.com:OrgRepo/repo-o1.git
git@github.com:OrgRepo/repo-o2.git

第一种情况:

您创建一个仅能访问OrgRepo的ssh密钥。因此,如果密钥被盗并被黑客入侵,则黑客只能访问OrgRepo/repo-o1.gitOrgRepo/repo-o2.git,但如果他尝试克隆MyUser/repo-u1.gitMyUser/repo-u1.git,则会被拒绝。 / p>

第二种情况:

您创建一个仅能访问MyUser/repo-u2.git的ssh密钥。因此,如果密钥被盗并被黑客入侵,则黑客只能访问MyUser/repo-u2.git,但将被其他3个存储库拒绝。

1 个答案:

答案 0 :(得分:2)

GitHub并未完全提供所需的内容,但确实提供了一些类似的功能。

首先,如果您的组织正在使用SAML单一登录,则必须先为SSO明确启用SSH密钥,然后它才能访问该组织的存储库。同样,也必须为SSO启用个人访问令牌。没有相反的功能,从而阻止启用组织的凭据访问个人资源。

第二,如果您拥有一个仅需要访问一个存储库的自动化系统(例如CI服务器),则可以创建SSH部署密钥以仅访问该存储库。对于个人而言,这不是一个好工具,因为它缺乏可追溯性,但是对于自动化系统却是一个好工具。

除此之外,不,GitHub不提供您想要的东西。