GitHub 关于提交签名验证
使用 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 上验证这些提交,请执行以下步骤:
S/MIME 提交签名验证
您可以使用 S/MIME 通过组织颁发的 X.509 密钥对提交签名。
GitHub 使用 Debian ca 证书包(Mozilla 浏览器使用的相同信任库)确认您本地签名的提交和标记可根据可信根证书中的公钥加密验证。
注:S/MIME 签名验证可用于 Git 2.19 或更高版本。 要更新 Git 版本,请参阅 Git 网站。
要使用 S/MIME 对提交签名并在 GitHub 上验证这些提交,请执行以下步骤:
无需将公钥上传到 GitHub。
自动程序的签名验证
需要提交签名的组织和 GitHub 应用程序 可使用自动程序对提交签名。 如果提交或标记具有密码可验证的自动程序签名,则 GitHub 会将提交或标记标示为已验证。
自动程序的签名验证仅在请求被验证为 GitHub 应用程序 或自动程序并且不含自定义作者信息、自定义提交者信息、自定义签名信息(如提交 API)时才有效。
延伸阅读
- "对提交签名"
- "对标记签名"
- "提交签名验证故障排除"