是否可以创建一个只能访问一个存储库或一个组织的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.git
和OrgRepo/repo-o2.git
,但如果他尝试克隆MyUser/repo-u1.git
或MyUser/repo-u1.git
,则会被拒绝。 / p>
第二种情况:
您创建一个仅能访问MyUser/repo-u2.git
的ssh密钥。因此,如果密钥被盗并被黑客入侵,则黑客只能访问MyUser/repo-u2.git
,但将被其他3个存储库拒绝。
答案 0 :(得分:2)
GitHub并未完全提供所需的内容,但确实提供了一些类似的功能。
首先,如果您的组织正在使用SAML单一登录,则必须先为SSO明确启用SSH密钥,然后它才能访问该组织的存储库。同样,也必须为SSO启用个人访问令牌。没有相反的功能,从而阻止启用组织的凭据访问个人资源。
第二,如果您拥有一个仅需要访问一个存储库的自动化系统(例如CI服务器),则可以创建SSH部署密钥以仅访问该存储库。对于个人而言,这不是一个好工具,因为它缺乏可追溯性,但是对于自动化系统却是一个好工具。
除此之外,不,GitHub不提供您想要的东西。