Github 不允许同一个 ssh 部署密钥用于多个项目,这在某些情况下非常有用(例如,CI 服务器处理具有私有子模块的项目)。我已经看到各种线程似乎都说这种限制是出于“安全原因”而存在,但我还没有看到关于这到底会带来什么风险的令人信服的解释。
请注意,Github 不允许账户级别重用密钥是有意义的(两个用户不应共享密钥)。这只是限制部署密钥我正在质疑。
需要明确的是,我not寻找解决方法(创建一个虚拟用户,使用多个密钥,...),但只是为了对部署密钥的此限制提供合理的解释。
相关主题:
- 一个显示一个解决方法 http://eclipsesource.com/blogs/2012/07/30/accessing-multiple-private-github-repositories-without-a-dedicated-build-user/
- One 讨论这个问题 https://github.com/gitlabhq/gitlabhq/issues/370但并没有真正去任何地方
不幸的是,在这种情况下,github 会误解密钥对与帐户或项目之间的区别。
由于密钥对用于身份验证和授权,因此它实际上是一个身份。 Github 帐户是另一个身份。将 github 帐户连接到密钥对可以有效地在基于 github 帐户的身份和密钥对身份之间建立 1:N 映射。
相反,github 强制将项目与基于密钥对的身份进行 1:N 映射。现实世界的类比是,有一扇允许许多不同的人打开该项目的门。但一旦他们中的任何一个人获得了门的钥匙,他们就再也无法获得任何其他门的钥匙了。
从遏制密钥泄露的角度来看,不经常重复使用密钥是有意义的。但这只是一个好的管理policy。阻止密钥被多次使用没有多大意义原则上。有些门的钥匙永远不会重复使用,好吧,这又取决于policy.
一个稍微复杂的视图是将密钥对说明为roles。您可以拥有许多密钥对,因此可以担任许多角色。私钥对您的角色进行身份验证。
Github 将键映射部署到项目指出,一个角色永远不能包含多个任务。这很少是现实的。
当然,这些都不会改变 github 允许的内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)