{"meta":{"title":"新しい GPG キーを生成する","intro":"既存の GPG キーがない場合は、新しい GPG キーを生成してコミットおよびタグの署名に使用できます。","product":"認証","breadcrumbs":[{"href":"/ja/authentication","title":"認証"},{"href":"/ja/authentication/managing-commit-signature-verification","title":"コミット署名を確認する"},{"href":"/ja/authentication/managing-commit-signature-verification/generating-a-new-gpg-key","title":"新しい GPG キーを生成する"}],"documentType":"article"},"body":"# 新しい GPG キーを生成する\n\n既存の GPG キーがない場合は、新しい GPG キーを生成してコミットおよびタグの署名に使用できます。\n\n### サポートされているGPGキーのアルゴリズム\n\nGitHub ではいくつかの GPG キー アルゴリズムをサポートしています。 サポートされていないアルゴリズムで生成されたキーを追加しようとすると、エラーが生じることがあります。\n\n* RSA\n* ElGamal\n* DSA\n* ECDH\n* ECDSA\n* EdDSA\n\n## GPG キーの生成\n\n> \\[!NOTE]\n> 新しい GPG キーを生成する前に、メール アドレスを確認してください。 メール アドレスを確認していない場合、GPG でコミットとタグに署名することはできません。 詳細については、 [AUTOTITLE を](/ja/account-and-profile/how-tos/email-preferences/verifying-your-email-address)参照してください。\n\n1. オペレーティング システム用の [GPG コマンド ライン ツール](https://www.gnupg.org/download/)をダウンロードしてインストールします。 通常はオペレーティングシステム向けの最新バージョンをインストールすることをおすすめします。\n\n2. <span class=\"platform-mac\">\\[ターミナル]</span><span class=\"platform-linux\">\\[ターミナル]</span><span class=\"platform-windows\">\\[Git Bash]</span> を開きます。\n\n3. GPG キーペアを生成します。 GPG には複数のバージョンがあるため、適切なキー生成コマンドを見つけるには、関連する [*man ページ*](https://en.wikipedia.org/wiki/Man_page)を参照する必要がある場合があります。\n   * バージョン 2.1.17 以降の場合は、以下のテキストを貼り付けて GPG キーペアを生成します。\n\n     ```shell copy\n     gpg --full-generate-key\n     ```\n\n   * バージョン 2.1.17 以降を使用していない場合、`gpg --full-generate-key` コマンドは機能しません。 以下のテキストを貼り付けてステップ 6 に進んでください。\n\n     ```shell copy\n     gpg --default-new-key-algo rsa4096 --gen-key\n     ```\n\n4. プロンプトで、目的のキーの種類を指定するか、`Enter` を押して既定値をそのまま使用します。\n\n5. プロンプトで、目的のキー サイズを指定するか、`Enter` を押して既定値をそのまま使用します。\n\n6. キーの有効期間を入力します。\n   `Enter` を押して、キーが無期限に設定されることを示す既定の選択を指定します。 有効期限が必要な場合を除き、この既定値をそのまま使用することをお勧めします。\n\n7. 選択内容が正しいことを確認します。\n\n8. ユーザ ID 情報を入力します。\n\n   > \\[!NOTE]\n   > メール アドレスの入力を求められたら、GitHub アカウントの確認済みメール アドレスを入力してください。\n   > メール アドレスを非公開のままにするには、GitHub 指定の `no-reply` メール アドレスを使用します。\n\n詳細については、 [メールアドレスを検証する](/ja/account-and-profile/how-tos/email-preferences/verifying-your-email-address) と [コミットメールアドレスを設定する](/ja/account-and-profile/how-tos/email-preferences/setting-your-commit-email-address) を参照してください。\n\n1. 安全なパスフレーズを入力します。\n\n2. 公開キーと秘密キーの両方がある GPG キーを長い形式で一覧表示するには、`gpg --list-secret-keys --keyid-format=long` コマンドを使用します。 コミットやタグに署名するには秘密鍵が必要です。\n\n   ```shell copy\n   gpg --list-secret-keys --keyid-format=long\n   ```\n\n   > \\[!NOTE]\n   > Linux 上の GPG のインストールの一部では、既存のキーの一覧を表示するため、代わりに `gpg2 --list-keys --keyid-format LONG` を使うことが必要な場合があります。 この場合、`git config --global gpg.program gpg2` を実行して `gpg2` を使用するには、Git を構成する必要もあります。\n\n3. GPGキーのリストから、使いたいGPGキーIDの長い形式をコピーしてください。 この例では、GPG キー ID は `3AA5C34371567BD2` です。\n\n   ```shell copy\n   $ gpg --list-secret-keys --keyid-format=long\n   /Users/hubot/.gnupg/secring.gpg\n   ------------------------------------\n   sec   4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10]\n   uid                          Hubot <hubot@example.com>\n   ssb   4096R/4BB6D45482678BE3 2016-03-10\n   ```\n\n4. 以下のテキストを貼り付け、使用するGPGキーIDを入力してください。 この例では、GPG キー ID は `3AA5C34371567BD2` です。\n\n   ```shell copy\n   gpg --armor --export 3AA5C34371567BD2\n   # Prints the GPG key ID, in ASCII armor format\n   ```\n\n5. `-----BEGIN PGP PUBLIC KEY BLOCK-----` で始まり、`-----END PGP PUBLIC KEY BLOCK-----` で終わる GPG キーをコピーします。\n\n6. [GITHUB アカウントに GPG キーを追加します](/ja/authentication/managing-commit-signature-verification/adding-a-gpg-key-to-your-github-account)。\n\n## 参考資料\n\n* [既存の GPG キーの確認](/ja/authentication/managing-commit-signature-verification/checking-for-existing-gpg-keys)\n* [GitHub アカウントへの GPG キーの追加](/ja/authentication/managing-commit-signature-verification/adding-a-gpg-key-to-your-github-account)\n* [Git へ署名キーを伝える](/ja/authentication/managing-commit-signature-verification/telling-git-about-your-signing-key)\n* [GPG キーとメールの関連付け](/ja/authentication/managing-commit-signature-verification/associating-an-email-with-your-gpg-key)\n* [コミットに署名する](/ja/authentication/managing-commit-signature-verification/signing-commits)\n* [タグに署名する](/ja/authentication/managing-commit-signature-verification/signing-tags)"}