将外部人员SSH公钥添加到GitHub账号是否会授予其所有仓库权限?
GitHub SSH密钥授权相关问题解答
以下是针对你提出的三个问题的具体解答:
1. 该操作是否会授予外部贡献者你名下所有仓库的读写权限?
答案是完全会。GitHub账号下添加的SSH密钥属于账号级别的授权,而非仓库级别的权限。只要某对公钥私钥对被添加到你的个人账号SSH密钥列表中,持有对应私钥的用户就可以访问你账号下所有公开、私有仓库,拥有完整的读写权限,没有任何官方支持的方式可以限制这类密钥只能访问单个仓库。
你想要实现的「仅开放单个仓库权限给外部贡献者」的正确操作是:让贡献者注册属于自己的GitHub账号,你进入目标仓库的Settings→Collaborators页面,添加他的账号并分配对应权限即可,这种方式下他只能访问你主动授权的仓库,无法接触你账号下的其他资源。
2. 添加该SSH密钥是否会导致对方获得账号全部权限?
是的,对方将拥有和你本人完全一致的账号权限。除了所有仓库的读写权限外,他还可以修改你的账号登录信息、绑定/解绑二次验证、删除仓库、管理协作者、访问你加入的组织内的有权限资源,甚至可以直接注销你的账号。
3. 添加外部人员SSH密钥到个人账号的具体安全风险
- 仓库资源不受控:对方可以任意读写、删除你所有私有/公开仓库的代码,提交恶意代码、篡改提交记录,删除已发布的版本、包等产物
- 账号所有权丢失:对方可以修改你的登录邮箱、密码,更换二次验证方式,直接接管你的账号
- 关联风险扩散:如果你是任何组织的成员,对方还可以访问该组织下你有权限的所有仓库、资源,甚至以你的名义进行操作,给组织带来损失
- 身份冒用风险:对方可以你的名义发起PR、Issue、公开讨论,发布的所有内容都会被记在你的账号名下,可能引发合规、版权相关的问题
紧急操作建议:请立即进入你GitHub账号的
Settings→Access→SSH and GPG keys页面,删除你刚才添加的外部贡献者公钥,避免出现不可逆的损失。
内容的提问来源于stack exchange,提问作者Username Not Exist
相关产品推荐
相关产品推荐

