コミット署名の検証について
コミットとタグにローカルで署名して、行った変更の根拠を他のユーザに信頼してもらうことができます。 コミットまたはタグに暗号で検証可能な GPG または S/MIME 署名がある場合、GitHub はコミットまたはタグに「Verified」または「Partially verified」
コミットとタグには、警戒モードを有効にしているかどうかによって、次の検証ステータスが含まれます。 デフォルト設定では、警戒モードは有効になっていません。 警戒モードを有効にする方法については、「すべてのコミットの検証ステータスを表示する」を参照してください。
ノート: Vigilantモードは現在ベータであり、変更されることがあります。
デフォルトのステータス
状況 | 説明 |
---|---|
検証済み | コミットが署名され、署名が正常に検証されました。 |
Unverified | コミットは署名されていますが、署名を検証できませんでした。 |
No verification status | コミットが署名されていません。 |
警戒モードが有効になっているステータス
ステータス | 説明 |
---|---|
Verified | コミットは署名され、署名の検証も成功しており、コミッターは警戒モードを有効化した唯一の作者。 |
Partially verified | コミットは署名され、署名の検証も成功しているが、コミットには a) コミッターではなく b) 警戒モードを有効化した 作者がいる。 この場合、コミットの署名は作者の合意を保証しないので、コミットは部分的にのみ検証されています。 |
Unverified | 以下のいずれかが真: - コミットは署名されているが、署名を検証できなかった。 - コミットが署名されておらず、コミッターは警戒モードを有効化した。 - コミットは署名されておらず、作者が警戒モードを有効化した。 |
リポジトリ管理者は、ブランチでコミット署名を必須として、署名および検証されていないすべてのコミットをブロックできます。 詳しい情報については、「保護されたブランチについて」を参照してください。
GitHub上の署名されたコミットあるいはタグの検証ステータスをチェックして、コミットの署名が検証されない理由を見ることができます。 詳細は「コミットおよびタグの署名の検証のステータスをチェックする」を参照してください。
GitHub は GPG を自動的に使用して、GitHub Web インターフェースを使用して行ったコミットに署名します。ただし、作者ではないプルリクエストを squash してマージする場合は除きます。 GitHubによって署名されたコミットは、GitHubで認証済みのステータスになります。 署名は、https://github.com/web-flow.gpgから利用できる公開鍵を使ってローカルに検証できます。 The full fingerprint of the key is 5DE3 E050 9C47 EA3C F04A 42D3 4AEE 18F8 3AFD EB23
. オプションとして、Codespaces で行ったコミットを GitHub で署名させることもできます。 Codespaces の GPG 検証を有効にする方法については、「Codespaces の GPG 検証の管理」を参照してください。
GPG コミット署名の検証
自分で生成した GPG キーで、GPG を使ってコミットに署名できます。
GitHubは、あなたがローカルで署名したコミットやタグがあなたのGitHubアカウントに追加された公開鍵に対して暗号的に検証できることを、OpenPGPライブラリを使って確認します。
GPG を使ってコミットに署名し、それらのコミットを GitHub 上で検証済みにするには、以下の手順に従ってください:
S/MIME コミット署名の検証
S/MIME を使い、自分の Organization で発行した X.509 キーを用いてコミットに署名できます。
GitHub は、ローカルに署名されたコミットやタグが信頼されたルート証明書の公開鍵に対して暗号的に検証可能であることを確認するために、Mozilla ブラウザが使うのと同じ信頼ストアであるDebian ca-certificatesパッケージを使います。
ノート: S/MIME署名の検証は、Git 2.19以降で利用できます。 Gitのバージョンをアップデートするには、GitのWebサイトを参照してください。
S/MIME を使ってコミットに署名し、それらのコミットを GitHub 上で検証済みにするには、以下の手順に従ってください:
公開鍵を GitHubにアップロードする必要はありません。
ボットの署名検証
コミットの署名が必要な Organization および GitHub App は、コミットの署名にボットを利用できます。 コミットまたはタグが暗号的に検証可能なボット署名を持っている場合、GitHub はそのコミットまたはタグを検証済みとしてマークします。
ボットの署名検証は、要求が検証され GitHub App またはボットとして認証されており、カスタム作者情報、カスタムコミッター情報、およびコミットAPI などのカスタム署名情報が含まれていない場合にのみ機能します。