【问题标题】:Where can I find the public key for commits done from GitHub.com?我在哪里可以找到从 GitHub.com 完成的提交的公钥?
【发布时间】:2018-07-04 16:46:30
【问题描述】:

Git 支持使用 GPG 对提交进行签名,GitHub 将这些提交显示为“已验证”。当您单击已验证标签时,您会看到类似以下内容:

此提交已使用经过验证的签名进行签名。

我的用户名

我的名字

GPG 密钥 ID:F66DEF7BA82E8647

当您合并拉取请求时,或者假设您从 Web 界面中进行提交时,它也显示为已验证,但显示不同的消息:

此提交是在 GitHub.com 上创建的,并使用 GitHub 的密钥使用经过验证的签名进行签名。

GPG 密钥 ID:4AEE18F83AFDEB23

当我运行 git log --show-signature 时,它会显示我已在本地签名的提交,如下所示:

gpg: Signature made 01/25/18 11:52:25 W. Europe Standard Time^M
gpg:                using RSA key 3FA85DEE7B64EB7EC8F97F41F66DEF7BA82E8647^M
gpg: Good signature from "Dude" <somebody@email.com>" [ultimate]^M

到目前为止,一切都很好。但是,当我遇到合并的拉取请求时,我会得到以下信息:

gpg: Signature made 01/25/18 09:07:45 W. Europe Standard Time^M
gpg:                using RSA key 4AEE18F83AFDEB23^M
gpg: Can't check signature: No public key^M

显然这是因为我没有将公钥添加到我的 GPG 密钥列表中。问题是:我在哪里可以找到这把钥匙?它在某处列出吗?

编辑:显然我已经尝试过谷歌搜索,甚至在 GitHub 的社区论坛上提出了一个问题,但没有得到回答。

【问题讨论】:

标签: github gnupg


【解决方案1】:

根据 GPG 的性质,您需要确定要导入哪些密钥以及签署哪些密钥。你可以在这里找到 GitHub 的 web flow GPG 公钥:

https://github.com/web-flow.gpg

如果要导入公钥,可以使用以下命令:

curl https://github.com/web-flow.gpg | gpg --import

作为 GPG 的用户,您应该评估您对该密钥来源的信任程度。如果您确定它确实属于 GitHub,您可以对其进行签名,并可选择将您的签名发布到密钥服务器,基本上公开承认您认为该密钥属于它应该属于的人。

【讨论】:

    【解决方案2】:

    GitHub 有关于如何定位现有密钥、创建新密钥、将它们添加到 git、GitHub 等的文档。您可以找到 here,我想它会在这里回答您的任何问题。

    发件人:https://help.github.com/articles/about-gpg/

    GitHub 将自动签署您使用 GitHub Web 界面所做的提交。这些提交将在 GitHub 上具有经过验证的状态。您可以使用https://github.com/web-flow.gpg提供的公钥在本地验证签名

    【讨论】:

    • 这似乎是要告诉 GitHub 一个密钥,但我想告诉 gpg 一个来自 GitHub 的密钥。
    • 查看我对这个问题的评论;你的答案最终会导致答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-02
    • 2021-03-21
    • 1970-01-01
    • 2019-03-31
    • 1970-01-01
    • 2020-01-31
    相关资源
    最近更新 更多