新しい GPG キーを生成する
既存の GPG キーがない場合は、新しい GPG キーを生成してコミットおよびタグの署名に使用できます。
サポートされている GPG キーのアルゴリズム
GitHub Enterprise は、複数の GPG キーのアルゴリズムをサポートしています。サポートされていないアルゴリズムで生成されたキーを追加しようとすると、エラーが生じることがあります。
- RSA
- ElGamal
- DSA
- ECDH
- ECDSA
- EdDSA
GPG キーの生成
メモ: 新しい GPG キーを生成する前にメールアドレスを検証しておいてください。 メールアドレスを検証していないと、GPG を使用してコミットやタグに署名できません。
-
オペレーティングシステムに GPG コマンドラインツールをダウンロードしてインストールします。 通常はオペレーティングシステム向けの最新バージョンをインストールすることをおすすめします。
-
ターミナルターミナルGit Bashターミナル を開いてください。
-
GPG キーペアを生成します。 GPG には複数のバージョンがあるため、関連する man ページを参考にして適切なキーの生成コマンドを見つける必要があります。 GPG キーは、キーサイズが
4096
ビットの RSA を使用している必要があります。-
バージョン 2.1.17 以降の場合は、以下のテキストを貼り付けて GPG キーペアを生成します。
$ gpg --full-generate-key
- If you are not on version 2.1.17 or greater, the
gpg --full-generate-key
command doesn't work. 以下のテキストを貼り付けてステップ 6 に進んでください。
-
<pre><code class="hljs language-shell">$ gpg --default-new-key-algo rsa4096 --gen-key</code></pre>
-
プロンプトで、必要なキーの種類を指定するか、
Enter
キーを押してデフォルトのRSA and RSA
を受け入れます。 -
希望のキーサイズを入力します。 最大キーサイズの
4096
をおすすめします。 -
キーの有効期間を入力します。
Enter
キーを押して、無期限を示すデフォルトの選択を指定します。 -
選択内容が正しいことを確認します。
-
ユーザ ID 情報を入力します。
メモ: メールアドレスの入力を求められた場合は、GitHub アカウント用の検証済みメールアドレスを入力してください。
-
安全なパスフレーズを入力します。
-
公開鍵と秘密鍵の両方を持っている 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 hubot@example.comssb 4096R/42B317FD4BA89E7A 2016-03-10
-
以下のテキストを貼り付けます。GPG キー ID は実際に使用するものを入力してください。 この例では、GPG キー ID は
3AA5C34371567BD2
です。$ gpg --armor --export 3AA5C34371567BD2 # ASCII armor 形式で GPG キーを出力する
-
-----BEGIN PGP PUBLIC KEY BLOCK-----
で始まり、-----END PGP PUBLIC KEY BLOCK-----
で終わる GPG キーをコピーします。