Git へ GPG キーを伝える
コミッタのアイデンティティと GitHub Enterprise Serverアカウントに関連付けられた検証済みのメールアドレスに一致する GPG キーを使っている場合、コミットやタグへの署名を始めることができます。
コミッターアイデンティティにマッチする GPG キーを持っていない場合、既存のキーとメールアドレスを関連付ける必要があります。 詳細は「メールを GPG キーに関連付ける」を参照してください。
複数の GPG キーを持っている場合、どれを使うかを Git に伝える必要があります。
-
ターミナルターミナルGit Bashを開いてください。
-
公開鍵と秘密鍵をどちらも持っているGPGキーの長い形式のリストを表示するには、
gpg --list-secret-keys --keyid-format=long
コマンドを使ってください。 コミットやタグに署名するには秘密鍵が必要です。$ gpg --list-secret-keys --keyid-format=long
ノート:LinuxのGPG環境の中には、既存のキーのリストを表示させるために
gpg2 --list-keys --keyid-format LONG
としなければならないものもあります。 この場合、git config --global gpg.program gpg2
と実行してGitがgpg2
を使うように設定する必要もあります。 -
GPGキーのリストから、使いたいGPGキーIDの長い形式をコピーしてください。 この例では、GPG キー ID は
3AA5C34371567BD2
です。$ gpg --list-secret-keys --keyid-format=long /Users/hubot/.gnupg/secring.gpg ------------------------------------ sec 4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10] uid Hubot
ssb 4096R/42B317FD4BA89E7A 2016-03-10 -
GitでGPG署名キーを設定するには、以下のテキストを使いたいGPGキーIDに置き換えて貼り付けてください。 この例では、GPG キー ID は
3AA5C34371567BD2
です。$ git config --global user.signingkey 3AA5C34371567BD2
-
GPG スイートを使用していない場合は、
zsh
シェルで次のコマンドを実行して、GPG キーがある場合に.zshrc
ファイル、または.zprofile
ファイルに追加します。$ if [ -r ~/.zshrc ]; then echo 'export GPG_TTY=$(tty)' >> ~/.zshrc; \ else echo 'export GPG_TTY=$(tty)' >> ~/.zprofile; fi
または、
bash
シェルを使用する場合は、次のコマンドを実行します。$ if [ -r ~/.bash_profile ]; then echo 'export GPG_TTY=$(tty)' >> ~/.bash_profile; \ else echo 'export GPG_TTY=$(tty)' >> ~/.profile; fi
Git にX.509 キーについて知らせる
GPGではなくS/MIMEを使ってコミットやタグに署名するために、smimesignを使うことができます。
ノート: S/MIME署名の検証は、Git 2.19以降で利用できます。 Gitのバージョンをアップデートするには、GitのWebサイトを参照してください。
- smimesignをインストールしてください。
- ターミナルターミナルGit Bashを開いてください。
- コミットやタグの署名にS/MIMEを使うようGitを設定してください。 Git 2.19以降では、
git config gpg.x509.program
及びgit config gpg.format
コマンドを使ってください。
- すべてのリポジトリへの署名にS/MIMEを使うには以下のようにします。
$ git config --global gpg.x509.program smimesign $ git config --global gpg.format x509
- 1つのリポジトリへの署名にS/MIMEを使うには以下のようにします。
Git 2.18以前では、$ cd /path/to/my/repository $ git config --local gpg.x509.program smimesign $ git config --local gpg.format x509
git config gpg.program
コマンドを使ってください。 - すべてのリポジトリへの署名にS/MIMEを使うには以下のようにします。
$ git config --global gpg.program smimesign
- 1つのリポジトリへの署名にS/MIMEを使うには以下のようにします。
自分のコミッタアイデンティティにマッチにするX.509キーを使っているなら、コミットやタグへの署名を始められます。$ cd /path/to/my/repository $ git config --local gpg.program smimesign
- コミッタアイデンティティにマッチしているX.509キーを使っていないなら、
smimesign --list-keys
コマンドを使って証明書と秘密鍵の両方を持っているX.509キーのリストを取ってください。$ smimesign --list-keys
- X.509キーのリストから、使いたいX.509キーの証明書IDをコピーしてください。 以下の例では、証明書IDは
0ff455a2708394633e4bb2f88002e3cd80cbd76f
です。$ smimesign --list-keys ID: 0ff455a2708394633e4bb2f88002e3cd80cbd76f S/N: a2dfa7e8c9c4d1616f1009c988bb70f Algorithm: SHA256-RSA Validity: 2017-11-22 00:00:00 +0000 UTC - 2020-11-22 12:00:00 +0000 UTC Issuer: CN=DigiCert SHA2 Assured ID CA,OU=www.digicert.com,O=DigiCert Inc,C=US Subject: CN=Octocat,O=GitHub\, Inc.,L=San Francisco,ST=California,C=US Emails: octocat@github.com
- X.509署名キーをGitに設定するには、証明書IDをさきほどコピーしたものに置き換えて以下のテキストを貼り付けてください。
- すべてのリポジトリへの署名にX.509キーを使うには以下のようにします。
$ git config --global user.signingkey 0ff455a2708394633e4bb2f88002e3cd80cbd76f
- 1つのリポジトリへの署名にX.509キーを使うには以下のようにします。
$ cd /path/to/my/repository $ git config --local user.signingkey 0ff455a2708394633e4bb2f88002e3cd80cbd76f
Git へ GPG キーを伝える
コミッタのアイデンティティと GitHub Enterprise Serverアカウントに関連付けられた検証済みのメールアドレスに一致する GPG キーを使っている場合、コミットやタグへの署名を始めることができます。
コミッターアイデンティティにマッチする GPG キーを持っていない場合、既存のキーとメールアドレスを関連付ける必要があります。 詳細は「メールを GPG キーに関連付ける」を参照してください。
複数の GPG キーを持っている場合、どれを使うかを Git に伝える必要があります。
-
ターミナルターミナルGit Bashを開いてください。
-
公開鍵と秘密鍵をどちらも持っているGPGキーの長い形式のリストを表示するには、
gpg --list-secret-keys --keyid-format=long
コマンドを使ってください。 コミットやタグに署名するには秘密鍵が必要です。$ gpg --list-secret-keys --keyid-format=long
ノート:LinuxのGPG環境の中には、既存のキーのリストを表示させるために
gpg2 --list-keys --keyid-format LONG
としなければならないものもあります。 この場合、git config --global gpg.program gpg2
と実行してGitがgpg2
を使うように設定する必要もあります。 -
GPGキーのリストから、使いたいGPGキーIDの長い形式をコピーしてください。 この例では、GPG キー ID は
3AA5C34371567BD2
です。$ gpg --list-secret-keys --keyid-format=long /Users/hubot/.gnupg/secring.gpg ------------------------------------ sec 4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10] uid Hubot
ssb 4096R/42B317FD4BA89E7A 2016-03-10 -
GitでGPG署名キーを設定するには、以下のテキストを使いたいGPGキーIDに置き換えて貼り付けてください。 この例では、GPG キー ID は
3AA5C34371567BD2
です。$ git config --global user.signingkey 3AA5C34371567BD2
Git にX.509 キーについて知らせる
GPGではなくS/MIMEを使ってコミットやタグに署名するために、smimesignを使うことができます。
ノート: S/MIME署名の検証は、Git 2.19以降で利用できます。 Gitのバージョンをアップデートするには、GitのWebサイトを参照してください。
- smimesignをインストールしてください。
- ターミナルターミナルGit Bashを開いてください。
- コミットやタグの署名にS/MIMEを使うようGitを設定してください。 Git 2.19以降では、
git config gpg.x509.program
及びgit config gpg.format
コマンドを使ってください。
- すべてのリポジトリへの署名にS/MIMEを使うには以下のようにします。
$ git config --global gpg.x509.program smimesign $ git config --global gpg.format x509
- 1つのリポジトリへの署名にS/MIMEを使うには以下のようにします。
Git 2.18以前では、$ cd /path/to/my/repository $ git config --local gpg.x509.program smimesign $ git config --local gpg.format x509
git config gpg.program
コマンドを使ってください。 - すべてのリポジトリへの署名にS/MIMEを使うには以下のようにします。
$ git config --global gpg.program smimesign
- 1つのリポジトリへの署名にS/MIMEを使うには以下のようにします。
自分のコミッタアイデンティティにマッチにするX.509キーを使っているなら、コミットやタグへの署名を始められます。$ cd /path/to/my/repository $ git config --local gpg.program smimesign
- コミッタアイデンティティにマッチしているX.509キーを使っていないなら、
smimesign --list-keys
コマンドを使って証明書と秘密鍵の両方を持っているX.509キーのリストを取ってください。$ smimesign --list-keys
- X.509キーのリストから、使いたいX.509キーの証明書IDをコピーしてください。 以下の例では、証明書IDは
0ff455a2708394633e4bb2f88002e3cd80cbd76f
です。$ smimesign --list-keys ID: 0ff455a2708394633e4bb2f88002e3cd80cbd76f S/N: a2dfa7e8c9c4d1616f1009c988bb70f Algorithm: SHA256-RSA Validity: 2017-11-22 00:00:00 +0000 UTC - 2020-11-22 12:00:00 +0000 UTC Issuer: CN=DigiCert SHA2 Assured ID CA,OU=www.digicert.com,O=DigiCert Inc,C=US Subject: CN=Octocat,O=GitHub\, Inc.,L=San Francisco,ST=California,C=US Emails: octocat@github.com
- X.509署名キーをGitに設定するには、証明書IDをさきほどコピーしたものに置き換えて以下のテキストを貼り付けてください。
- すべてのリポジトリへの署名にX.509キーを使うには以下のようにします。
$ git config --global user.signingkey 0ff455a2708394633e4bb2f88002e3cd80cbd76f
- 1つのリポジトリへの署名にX.509キーを使うには以下のようにします。
$ cd /path/to/my/repository $ git config --local user.signingkey 0ff455a2708394633e4bb2f88002e3cd80cbd76f
メモ: Linux 上の X.509 はサポートされていません。 暗号化と署名サービスを提供するために gpgsm を設定できます。ですが、現在 GitHub Enterprise Server はこれをサポートしていません。 詳しい情報については、GnuPG のドキュメンテーションの gpgsm のトピックを参照してください。
Git へ GPG キーを伝える
コミッタのアイデンティティと GitHub Enterprise Serverアカウントに関連付けられた検証済みのメールアドレスに一致する GPG キーを使っている場合、コミットやタグへの署名を始めることができます。
コミッターアイデンティティにマッチする GPG キーを持っていない場合、既存のキーとメールアドレスを関連付ける必要があります。 詳細は「メールを GPG キーに関連付ける」を参照してください。
複数の GPG キーを持っている場合、どれを使うかを Git に伝える必要があります。
-
ターミナルターミナルGit Bashを開いてください。
-
公開鍵と秘密鍵をどちらも持っているGPGキーの長い形式のリストを表示するには、
gpg --list-secret-keys --keyid-format=long
コマンドを使ってください。 コミットやタグに署名するには秘密鍵が必要です。$ gpg --list-secret-keys --keyid-format=long
ノート:LinuxのGPG環境の中には、既存のキーのリストを表示させるために
gpg2 --list-keys --keyid-format LONG
としなければならないものもあります。 この場合、git config --global gpg.program gpg2
と実行してGitがgpg2
を使うように設定する必要もあります。 -
GPGキーのリストから、使いたいGPGキーIDの長い形式をコピーしてください。 この例では、GPG キー ID は
3AA5C34371567BD2
です。$ gpg --list-secret-keys --keyid-format=long /Users/hubot/.gnupg/secring.gpg ------------------------------------ sec 4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10] uid Hubot
ssb 4096R/42B317FD4BA89E7A 2016-03-10 -
GitでGPG署名キーを設定するには、以下のテキストを使いたいGPGキーIDに置き換えて貼り付けてください。 この例では、GPG キー ID は
3AA5C34371567BD2
です。$ git config --global user.signingkey 3AA5C34371567BD2
-
GPG キーを bash プロファイルに追加するには、次のコマンドを実行します。
$ if [ -r ~/.bash_profile ]; then echo 'export GPG_TTY=$(tty)' >> ~/.bash_profile; \ else echo 'export GPG_TTY=$(tty)' >> ~/.profile; fi
メモ:
.bash_profile
を持っていない場合、このコマンドで.profile
に GPG キーを追加します。