GPG 与 SSH 密钥
Posted
技术标签:
【中文标题】GPG 与 SSH 密钥【英文标题】:GPG vs SSH keys 【发布时间】:2018-12-26 23:20:44 【问题描述】:在 GitHub 上,我想添加一个密钥以将我的计算机与我的帐户相关联,我有两个选择:创建 SSH 或 GPG 密钥。
这两个键有什么区别?有没有首选的? 我了解如何按照网站上的指南创建两者,但我不知道哪个更好用。
【问题讨论】:
它们在 github 上用于不同的事情。 SSH 用于身份验证,而 GPG 用于签署标签和提交。 【参考方案1】:我想添加一个密钥以将我的计算机与我的帐户相关联,我有两个选项
如果您想使用 SSH URL 推送回您的存储库,您至少需要一个 SSH(因为公共 SSH 密钥将验证您的身份)。 从 SSH 开始。请参阅“Connecting to GitHub with SSH”。
以后可以use GPG to sign commits。
Vishwas M.R 在the comments 中指出“Why would I sign my git commits with a GPG key when I already use an SSH key to authenticate myself when I push?”
当您使用 SSH 密钥向 Github 进行身份验证时,该身份验证不会以任何有意义或持久的方式成为存储库的一部分。 它会导致 Github 暂时为您提供访问权限,但它不会向任何非 Github 的人证明任何事情。
当您对 Git 标记进行 GPG 签名时,该标记是存储库的一部分,并且可以推送到存储库的其他副本。 因此,克隆您的存储库的其他人可以验证签名标签,假设他们有权访问您的公钥并有理由信任它。
【讨论】:
我可以用我的 GPG 密钥替换我的 SSH 密钥吗? @daraul 正如我在 2017 年提到的:***.com/a/45120525/6309,从技术上讲,您可以将 SSH 密钥替换为 gpg 密钥(superuser.com/a/390176/141),但这不是很方便,或者 GPG 密钥是什么用于通常。 关于 gpg 签名提交:***.com/a/60456524/6309 (Eclipse) 和 ***.com/a/51919818/6309 (x509 而不是 openpgp) 如果有人想知道使用 GPG 签署提交有什么好处,请参阅 security.stackexchange.com/a/120725/274459 @VishwasM.R 好点。我已将您的评论包含在答案中以提高知名度。以上是关于GPG 与 SSH 密钥的主要内容,如果未能解决你的问题,请参考以下文章