Github:使用 ssh 密钥仅在一个存储库或组织中使用

jtw*_*ers 6 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
Run Code Online (Sandbox Code Playgroud)

第一种情况:

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

第二种情况:

您创建一个只能访问MyUser/repo-u2.git. 因此,如果密钥被盗并被黑客攻击,黑客只能访问MyUser/repo-u2.git其他 3 个存储库,但会被拒绝。

bk2*_*204 7

GitHub 并没有完全提供您想要的功能,但它确实提供了一些类似的功能。

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

其次,如果您有一个自动化系统,例如 CI 服务器,只需要访问一个存储库,您可以创建一个 SSH 部署密钥来仅访问该存储库。这对于个人来说不是一个好工具,因为它缺乏可追溯性,但对于自动化系统来说却是一个好工具。

除此之外,不,GitHub 不提供您正在寻找的东西。