Hub documentation

GPGによるコミット署名

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

GPGによるコミット署名

gitには、リポジトリへのコミットプッシュを許可するユーザーを制御するための認証レイヤーがありますが、実際のコミット作成者を認証する機能はありません。

つまり、Elon Musk <[email protected]> として変更をコミットし、お好みの git ホスト(例えば github.com)にプッシュすると、そのコミットは Elon の GitHub プロフィールにリンクされます。(試してみてください!ただし、彼を名乗ったことで Elon が怒ったとしても、当方は責任を負いません。)

GPG署名を実装した理由は以下の通りです。

  • 特に、Hubに依存するエンタープライズユーザーが増加していることを踏まえ、より細粒度のセキュリティを提供するために。
  • 暗号学的に安全なソースによって裏付けられたMLベンチマークを提供すること。

詳細な背景については、Ale Segala 氏の git コミットに署名する方法(およびその理由) を参照してください。

GNU Privacy Guard (GPG) とキーサーバーを使用して、コミットがあなたによって作成されたことを証明できます。GPG は、メッセージの送信元の真正性を検証するために使用される暗号ツールです。以下では、Hugging Face での設定方法について説明します。

Pro Gitの本は、これまで通り、コミット署名に関する優れたリソースです: Pro Git: Signing your work。

署名付きコミットの検証を設定する

以下のコマンドを実行するには、システムにGPGをインストールする必要があります。

ほとんどのLinuxディストリビューションにはデフォルトで含まれています。 Windowsでは、Git Bash(Windows用gitに同梱)に含まれています。

コミットはローカルでGPGを使用して署名できます。 その後、プロファイルを構成して、これらのコミットがHub上でverifiedとしてマークされるようにしてください。 これにより、他のユーザーが信頼できるソース由来であることを確信できます。

gitとGPGの相互作用についてより詳細な説明については、gitのドキュメントをご覧ください。

コミットには、次のような署名ステータスがあります。

ステータス説明
検証済みコミットに署名が適用されており、その署名が検証されています
未検証コミットは署名されていますが、署名を検証できませんでした
署名ステータスなしコミットに署名がありません

コミットがverifiedとしてマークされるには、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コマンドの出力をテキストエリアにコピー&ペーストし、Add Keyをクリックしてください。

  1. おめでとうございます!🎉 アカウントにGPGキーを追加しました!

GPGでコミットに署名するようにgitを設定する

最後のステップは、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にプッシュした後、コミットに「Verified」バッジが表示されるはずです。

コンピューター上のローカルリポジトリでデフォルトとしてすべてのコミットに署名するには、git config —global commit.gpgsign trueを実行できます。

Update on GitHub