是否可以在组织级别部署一个SSH密钥?也就是说,使用此密钥,用户将可以访问该组织下的所有存储库。
我尝试将相同的密钥用于多个存储库,但不可能(GitHub表示密钥已在使用中)
谢谢。
可能不是,并且有充分的理由。 SSH密钥应该是唯一的,并且对每个用户都是私有的。这既用于标识又用于安全性。
您的ssh密钥是Github识别您身份的方式。通过SSH连接到Github时,您使用的URL类似于[email protected]:org/repo.git
。这意味着您和其他所有人都以git
用户身份进行连接。 Github使用SSH密钥标识您的帐户。如果您组织中的每个人都具有相同的ssh密钥,Github不会告诉您。
共享身份验证是安全性很差的做法,无论是密码还是密钥。当某人离开组织时,应该取消其身份验证。如果您有单独的键,那么这很简单而且很常规。如果组织中的每个人都共享一个ssh密钥,那么您需要向整个组织中分配一个新的共享ssh密钥,等到(或希望)每个人都更新并撤消旧的共享密钥。您还需要查找共享密钥可能已安装的所有位置,并将其替换为新密钥。
[这很有可能会被视为麻烦,并且该组织将继续使用现在可能已泄露的共享密钥。
如果使用单个密钥,则如果某个密钥被盗用,则损害仅限于一个密钥可以访问的范围。同样,更换受损密钥很简单。泄露的密钥可以立即撤消,而只会给一个用户带来不便。泄露的共享密钥会影响整个组织。攻击者可以访问每个人的帐户。撤消泄露的密钥将关闭整个组织,直到分发了替换密钥为止。并且这可能会使安全性不愿撤消密钥。