如何在 Windows 上使用 GPG 向 Github 验证 SSH?

How to use GPG on Windows to authenticate to Github for SSH?

我有 gpg4win 套件并且已经使用 Kleopatra 创建了证书,我想使用现有证书通过 SSH 向 github 进行身份验证,而不是使用 [=18= 附带的 ssh-agent ] 安装.

github 帮助页面解释了如何使用 ssh-agent 生成新的密钥对以及如何将其添加到代理进行身份验证,但我很好奇我是否可以使用 gpg (gpg4win) 做到这一点?或者至少将现有证书与 ssh-agent 一起使用。

这是否可能以及如何实现?

要通过 SSH 向 GitHub 进行身份验证,您只能使用 SSH 密钥。 GPG 密钥用于对提交进行签名,以便人们知道提交是由您而不是其他人进行的。

场景如下:

您在 PC 上使用 SSH pull/push 到 GitHub。但是有一天,有人以某种方式找到了您的密码。现在,那个人也可以通过 您的帐户 推送和拉取 GitHub。这样,其他人就很难知道哪些提交是真实的你所做的,哪些是冒名顶替者所做的。

但是,如果您的 GitHub PC 帐户通过 SSH 提交时使用 GPG 密钥进行身份验证,则提交将被签名。现在,即使有人得到了您的密码并可以提交某些内容,其他人也会以某种方式知道该提交不是您所做的。为什么?因为它不是使用您的 GPG 密钥签名的。

GPG 密钥就像虚拟 signatures/fingerprint 一样,用于识别什么属于(授权)您,什么不属于您。就像用于验证您的身份以便于访问的 SSH 密钥一样。

所以,不,您不能使用 GPG 密钥 push/pull to/from GitHub。