Hub 文档
使用 GPG 签署提交
并获得增强的文档体验
开始使用
使用 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 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 密钥添加到你的帐户
首先,在你的计算机上选择或生成一个 GPG 密钥。确保密钥的电子邮件地址与你的 Hugging Face 帐户中的地址匹配,并且你的帐户电子邮件已验证。
导出所选密钥的公共部分
gpg --armor --export <YOUR KEY ID>
- 然后访问你的个人资料设置页面,然后单击添加 GPG 密钥。
将 gpg --export
命令的输出复制并粘贴到文本区域,然后单击添加密钥。
- 恭喜!🎉 你刚刚向你的帐户添加了一个 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
。