GPG与SSH密钥的区别

170
在GitHub上,我想添加一个键将我的计算机与我的账户关联起来,我有两个选项:创建SSH或GPG密钥。
这两种密钥有什么区别?是否有更好的选择?我通过遵循网站上的指南了解如何创建这两种,但我不知道哪种更好用。

27
在GitHub上,SSH用于身份验证,而GPG用于签署标签和提交。 - Xaqron
1个回答

99
我想添加一个密钥将我的计算机与我的帐户关联起来,我有两个选择。 如果您想使用SSH URL(因为公共SSH密钥将对您进行身份验证)将代码推回您的存储库,则至少需要SSH密钥。从SSH开始。请参见“使用SSH连接GitHub”。 稍后,您可以使用GPG签名提交
注意:自2022年8月起,GitHub也支持SSH提交验证

SSH commit check


Vishwas M.R评论中指出了"为什么我已经使用SSH密钥对自己进行身份验证时,还要用GPG密钥签署我的git提交记录?"的问题。

当您使用SSH密钥对Github进行身份验证时,该身份验证不会以任何有意义或持久的方式成为存储库的一部分。
它只是让Github给您提供访问权限,但它不能向任何不是Github的人证明任何事情。

当您使用GPG签署Git标记时,该标记是存储库的一部分,并且可以推送到存储库的其他副本中。
因此,克隆您的存储库的其他人可以验证已签名的标记,假设他们可以访问您的公钥并有理由信任它。


2
我可以用GPG密钥替换我的SSH密钥吗? - daraul
3
正如我在2017年提到的那样:https://dev59.com/clcO5IYBdhLWcg3w3VPU#45120525,你可以在技术上用gpg密钥替换你的SSH密钥(https://superuser.com/a/390176/141),但这不是很方便,也不是GPG密钥通常用于的目的。 - VonC
1
@VishwasM.R 很好的观点。我已经将您的评论包含在答案中以增加可见性。 - VonC
2
现在支持SSH提交验证。 - Lauren Yim
1
@cherryblossom 感谢您的反馈。我已经相应地编辑了答案,并引用了我的另一个答案(https://dev59.com/7HYPtIcB2Jgan1znCc4A#72852713),在那里我已经在两天前提到了SSH提交验证。 - VonC
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接