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
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 金鑰新增到你的賬戶
首先,在你的計算機上選擇或生成一個 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>
然後,在你的 git commit
命令中新增 -S
標誌來簽署你的提交!
git commit -S -m "My first signed commit"
一旦推送到 Hub,你應該會看到提交帶有一個“已驗證”的徽章。
git config --global commit.gpgsign true
。