Hub 文档

使用 GPG 签署提交

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

使用 GPG 签署提交

git 有一个身份验证层来控制谁可以向仓库推送提交,但它不会验证实际的提交作者。

换句话说,你可以以 Elon Musk <elon@tesla.com> 的身份提交更改,将它们推送到你喜欢的 git 主机(例如 github.com),你的提交将链接到 Elon 的 GitHub 个人资料。(试试吧!但如果 Elon 因为你冒充他而生气,别怪我们。)

我们实现 GPG 签名的原因如下:

  • 提供更细粒度的安全性,尤其是随着越来越多的企业用户依赖 Hub。
  • 提供由加密安全来源支持的 ML 基准测试。

请参阅 Ale Segala 的《如何(以及为什么)签署 git 提交》以获取更多背景信息。

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

Pro Git 这本书,一如既往,是关于提交签名的好资源:Pro Git: 签署你的工作

设置已签署提交的验证

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

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

你可以使用 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>

然后,在你的 git commit 命令中添加 -S 标志来签署你的提交!

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

一旦推送到 Hub,你应该会看到提交带有一个“已验证”的徽章。

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