阅读(2421) (2)

GitHub 关于提交签名验证

2020-08-19 14:02:46 更新

使用 GPG 或 S/MIME 可在本地签名标记并提交。 这些标记或提交在 GitHub 上标示为已验证,便于其他人信任更改来自可信的来源。

关于提交签名验证

您可以本地签名提交和标记,以便其他人确认您的工作来自可信的来源。 如果提交或标记具有密码可验证的 GPG 或 S/MIME 签名,则 GitHub 会将提交或标记标示为已验证。

验证的提交

如果提交或标记具有无法验证的签名,则 GitHub 会将提交或标记标示为未验证。

仓库管理员可对分析实施必要的提交签名,以阻止未签名和验证的所有提交。 更多信息请参阅"关于必需提交签名"。

您可以在 GitHub 上检查已签名提交或标记的验证状态,并查看提交签名未验证的原因。 更多信息请参阅“检查提交和标记签名验证状态”。

GitHub 将自动使用 GPG 通过 GitHub web 界面对您创建的提交进行签名,当您压缩且合并您不是其作者的拉取请求时除外。 由 GitHub 签名的提交在 GitHub 上将具有已验证的状态。 您可以使用 https://github.com/web-flow.gpg 上的公钥本地验证签名。

GPG 提交签名验证

您可以使用 GPG 通过自己生成的 GPG 密钥对验证签名。

GitHub 使用 OpenPGP 库确认您本地签名的提交和标记,是否根据您添加到 GitHub 帐户的公钥进行加密验证。

要使用 GPG 对提交签名并在 GitHub 上验证这些提交,请执行以下步骤:

  1. 检查现有 GPG 密钥
  2. 生成新 GPG 密钥
  3. 新增 GPG 密钥到 GitHub 帐户
  4. 将您的签名密钥告诉 Git
  5. 对提交签名
  6. 对标记签名

S/MIME 提交签名验证

您可以使用 S/MIME 通过组织颁发的 X.509 密钥对提交签名。

GitHub 使用 Debian ca 证书包(Mozilla 浏览器使用的相同信任库)确认您本地签名的提交和标记可根据可信根证书中的公钥加密验证。

注:S/MIME 签名验证可用于 Git 2.19 或更高版本。 要更新 Git 版本,请参阅 Git 网站。

要使用 S/MIME 对提交签名并在 GitHub 上验证这些提交,请执行以下步骤:

  1. 将您的签名密钥告诉 Git
  2. 对提交签名
  3. 对标记签名

无需将公钥上传到 GitHub。

自动程序的签名验证

需要提交签名的组织和 GitHub 应用程序 可使用自动程序对提交签名。 如果提交或标记具有密码可验证的自动程序签名,则 GitHub 会将提交或标记标示为已验证。

自动程序的签名验证仅在请求被验证为 GitHub 应用程序 或自动程序并且不含自定义作者信息、自定义提交者信息、自定义签名信息(如提交 API)时才有效。

延伸阅读