kra*_*r65 14 git ssh github repository ssh-keys
我有一台服务器,需要设置两个git repos的内容,我在github上托管.我现在想要将服务器的ssh密钥作为部署密钥添加到github上的两个项目中.
不幸的是我收到一个错误说Key is already in use,根据这个github页面是因为我无法将一个部署密钥添加到多个repo.
我真的好奇; 为什么这是个问题?为什么一台服务器无法访问多个repo?他们在这里尝试缓解的风险是什么?
tor*_*rek 13
这并不是对你所链接的GitHub页面所说内容的正确描述.实际上,您可以对许多不同的GitHub存储库使用相同的ssh密钥.您不能做的是为许多存储库使用一个ssh密钥,并将其称为"部署密钥",也不要使用与其他用户相同的 ssh密钥.
这里发生的是GitHub的ssh服务器将传入密钥分为以下两种类型之一:
kramer65的身份(或者你的帐户名称实际上是什么).还有"机器用户",但这些是一种帐户形式; 我不确定GitHub是否会将内部区别于常规帐户密钥区分开来.因为它们类似帐户而不是类似部署密钥,所以您可以授予它们访问许多不同存储库的权限.(这可能是你想要的.)
我真的好奇; 为什么这是个问题?为什么一台服务器无法访问多个repo?他们在这里尝试缓解的风险是什么?
他们并没有真正保护这里的一切.他们只是让你在GitHub上保存这一个额外的密钥,为了(方便),不用费心去创建帐户.为了(他们)的方便,他们然后将这一个额外的密钥附加到一个存储库,这使得他们的ssh服务器 - 或者真的,在密钥验证之后它背后的内容,即"登录shell" - 查找一个允许的存储库无需先通过"帐户"表间接.当传入密钥是帐户(或机器用户)密钥时,他们的ssh服务器或其后面的内容必须查看此辅助表,以查找允许的存储库集.
有关详细信息,请参阅https://developer.github.com/guides/managing-deploy-keys/#deploy-keys.
(没有理论上的理由他们不能允许部署密钥自动创建一个匿名的"机器用户",然后根据需要自动添加到每个存储库或从中删除.但是,他们什么都不买,因为机器用户已经存在,并且执行相同的功能.他们可以尝试将其作为安全功能旋转,因为它让你知道"嘿,那把钥匙对我来说意味着什么"......但是如果你有那把钥匙而且不是'牛逼应该有那把钥匙,你现在可以找出一个关键的实际解锁,其中如果有什么是有点反的安全性.另外,如果你是应该有一个键,干脆忘了您的存储库解锁,这使得系统非常困难.这是任何安全系统的典型特征:您制作它越安全,实际使用就越不方便.)