签名提交
- Tier: 基础版,专业版,旗舰版
- Offering: JihuLab.com,私有化部署
当您为提交添加数字签名时,您提供了额外的保证,确保提交是您本人发出的,而不是冒充者。数字签名是一种用于验证真实性的加密输出。
如果极狐GitLab 可以使用公共 GPG 密钥 验证提交者的身份,则在极狐GitLab UI 中将提交标记为 已验证。然后,您可以为项目配置推送规则以:
- 拒绝单个未签名的提交。
- 拒绝所有来自未验证用户的提交。
在 Git 中,提交者和作者字段是不同的。作者编写提交,提交者应用它。提交签名仅验证提交者的身份。
使用以下方式签署您的提交:
验证提交
要审核合并请求或整个项目的提交,并验证它们是否已签名:
-
在左侧边栏中选择 搜索或转到 并找到您的项目。
-
要审核提交:
- 对于项目,选择 代码 > 提交。
- 对于合并请求:
- 选择 代码 > 合并请求,然后选择您的合并请求。
- 选择 提交。
-
确定您要审核的提交。根据签名的验证状态,已签名的提交显示 已验证 或 未验证 徽章。

未签名的提交不显示徽章。
-
要显示提交的签名详细信息,请选择 已验证 或 未验证 以查看指纹或密钥 ID:


您也可以使用提交 API检查提交的签名。
验证在 Web UI 中进行的提交
极狐GitLab 使用 SSH 签署通过 Web UI 创建的提交。要在本地验证这些提交,请使用 Web Commits API 获取用于签署 Web 提交的极狐GitLab 公钥。
在已验证的提交中使用 gitmailmap
History
- 在极狐GitLab 17.5 引入,使用名为 check_for_mailmapped_commit_emails 的功能标志 。默认禁用。
此功能的可用性由功能标志控制。有关详细信息,请参阅历史记录。
gitmailmap 功能允许用户映射作者姓名和电子邮件地址。极狐GitLab 使用这些电子邮件地址提供指向提交作者的链接。当使用 mailmap 作者映射时,可能会出现具有未验证作者电子邮件的已验证提交。
对于使用 mailmap 作者映射的 SSH 和 UI 签名,极狐GitLab 显示带有警告标志的橙色已验证标签。要恢复绿色已验证标签,请验证映射的电子邮件地址,或删除 mailmap 条目。
故障排除
修复签名提交的验证问题
使用 GPG 密钥或 X.509 证书签名的提交的验证过程可能由于多种原因而失败:
| 值 | 描述 | 可能的修复 |
|---|---|---|
| UNVERIFIED | 提交签名无效。 | 使用有效签名对提交进行签名。 |
| SAME_USER_DIFFERENT_EMAIL | 用于签署提交的 GPG 密钥不包含提交者电子邮件,但包含提交者的其他有效电子邮件。 | 修订提交以使用与 GPG 密钥匹配的电子邮件地址,或更新 GPG 密钥以包含电子邮件地址。 |
| OTHER_USER | 签名和 GPG 密钥有效,但密钥属于与提交者不同的用户。 | 修订提交以使用正确的电子邮件地址,或修订提交以使用与您的用户关联的 GPG 密钥。 |
| UNVERIFIED_KEY | 与 GPG 签名关联的密钥没有与提交者关联的已验证电子邮件地址。 | 将电子邮件添加并验证到您的极狐GitLab 个人资料,更新 GPG 密钥以包含电子邮件地址,或修订提交以使用不同的提交者电子邮件地址。 |
| UNKNOWN_KEY | 极狐GitLab 不知道与此提交的 GPG 签名关联的 GPG 密钥。 | 将 GPG 密钥添加到您的极狐GitLab 个人资料。 |
| MULTIPLE_SIGNATURES | 已为提交找到多个 GPG 或 X.509 签名。 | 修订提交以仅使用一个 GPG 或 X.509 签名。 |