Github: 使用 ssh 密钥仅在一个存储库或组织中使用
Github: Use ssh key to use in only one repository or organization
是否可以创建一个只能访问一个存储库或一个组织的 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
将被拒绝。
第二种情况:
您创建了一个只能访问 MyUser/repo-u2.git
的 ssh 密钥。因此,如果密钥被盗并被黑客入侵,黑客只能访问 MyUser/repo-u2.git
但其他 3 个存储库将被拒绝。
GitHub 没有提供您想要的,但它确实提供了一些类似的功能。
首先,如果您的组织使用的是单一 SAML sign-on,则必须为 SSO 显式启用 SSH 密钥,然后它才能访问该组织的存储库。同样,也必须为 SSO 启用个人访问令牌。没有反向功能,阻止 organization-enabled 凭据访问个人资源。
其次,如果您有一个自动化系统,例如 CI 服务器,它只需要访问一个存储库,您可以创建一个 SSH 部署密钥以仅访问该存储库。这不是个人使用的好工具,因为它缺乏可追溯性,但它是自动化系统的好工具。
除此之外,不,GitHub 没有提供您要查找的内容。
对于第二种情况,请查看 deploy keys,您可以在 per-repo 的基础上限制 SSH 密钥访问。
是否可以创建一个只能访问一个存储库或一个组织的 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
将被拒绝。
第二种情况:
您创建了一个只能访问 MyUser/repo-u2.git
的 ssh 密钥。因此,如果密钥被盗并被黑客入侵,黑客只能访问 MyUser/repo-u2.git
但其他 3 个存储库将被拒绝。
GitHub 没有提供您想要的,但它确实提供了一些类似的功能。
首先,如果您的组织使用的是单一 SAML sign-on,则必须为 SSO 显式启用 SSH 密钥,然后它才能访问该组织的存储库。同样,也必须为 SSO 启用个人访问令牌。没有反向功能,阻止 organization-enabled 凭据访问个人资源。
其次,如果您有一个自动化系统,例如 CI 服务器,它只需要访问一个存储库,您可以创建一个 SSH 部署密钥以仅访问该存储库。这不是个人使用的好工具,因为它缺乏可追溯性,但它是自动化系统的好工具。
除此之外,不,GitHub 没有提供您要查找的内容。
对于第二种情况,请查看 deploy keys,您可以在 per-repo 的基础上限制 SSH 密钥访问。