Hub 文档

使用 GPG 签名提交

Hugging Face's logo
加入 Hugging Face 社区

并获得增强文档体验的访问权限

开始使用

使用 GPG 签名提交

git 具有一个身份验证层来控制谁可以将提交推送到存储库,但它不验证实际的提交作者。

换句话说,您可以将更改作为 Elon Musk <[email protected]> 提交,将它们推送到您首选的 git 主机(例如 github.com),并且您的提交将链接到 Elon 的 GitHub 个人资料。(试试看!但如果 Elon 因您冒充他而生气,我们概不负责。)

我们实施 GPG 签名的原因是

  • 提供更细粒度的安全性,尤其是在越来越多的企业用户依赖 Hub 的情况下。
  • 提供由加密安全来源支持的机器学习基准。

请参阅 Ale Segala 的 如何(以及为什么)签名 git 提交 以获取更多上下文。

您可以使用 GNU Privacy Guard (GPG) 和密钥服务器证明提交是由您创作的。GPG 是一种加密工具,用于验证消息来源的真实性。我们将在下面解释如何在 Hugging Face 上设置它。

Pro Git 书籍一如既往地是关于提交签名的良好资源:Pro Git:签名您的工作

设置已签名提交验证

您需要在您的系统上安装 GPG 才能执行以下命令。

大多数 Linux 发行版默认包含它。在 Windows 上,它包含在 Git Bash 中(随 Windows 版 git 提供)。

您可以使用 GPG 在本地签名您的提交。然后配置您的配置文件以将这些提交标记为 Hub 上的**已验证**,以便其他人可以确信它们来自受信任的来源。

有关 git 和 GPG 如何交互的更深入解释,请访问 git 关于此主题的文档

提交可以具有以下签名状态

状态 说明
已验证 提交已签名,并且签名已验证
未验证 提交已签名,但无法验证签名
无签名状态 提交未签名

要将提交标记为**已验证**,您需要将用于签名的公钥上传到您的 Hugging Face 帐户。

使用 gpg --list-secret-keys 命令列出您同时拥有公钥和私钥的 GPG 密钥。签名提交或标签需要私钥。

如果您没有 GPG 密钥对,或者不想使用现有密钥来签名您的提交,请转到**生成新的 GPG 密钥**。

否则,直接转到将 GPG 密钥添加到您的帐户

生成新的 GPG 密钥

要生成 GPG 密钥,请运行以下命令

gpg --gen-key

然后,GPG 将引导您完成创建 GPG 密钥对的过程。

确保您为该密钥指定一个电子邮件地址,并且该电子邮件地址与您在 Hugging Face 帐户 中指定的电子邮件地址相匹配。

将 GPG 密钥添加到您的帐户

  1. 首先,在您的计算机上选择或生成一个 GPG 密钥。确保密钥的电子邮件地址与您在 Hugging Face 帐户 中的电子邮件地址相匹配,并且您帐户的电子邮件已验证。

  2. 导出所选密钥的公共部分

gpg --armor --export <YOUR KEY ID>
  1. 然后访问您的个人资料设置页面,然后点击**添加 GPG 密钥**。

gpg --export 命令的输出复制并粘贴到文本区域中,然后点击**添加密钥**。

  1. 恭喜!🎉 您刚刚将 GPG 密钥添加到您的帐户!

配置 git 以使用 GPG 签名您的提交

最后一步是配置 git 以签名您的提交

git config user.signingkey <Your GPG Key ID>
git config user.email <Your email on hf.co>

然后将 -S 标志添加到您的 git commit 命令以签名您的提交!

git commit -S -m "My first signed commit"

推送到 Hub 后,您应该会看到带有“已验证”徽章的提交。

要默认在计算机上的任何本地存储库中签名所有提交,您可以运行 git config --global commit.gpgsign true
< > 在 GitHub 上更新