Skip to main content

新しい GPG キーを生成する

既存の GPG キーがない場合は、新しい GPG キーを生成してコミットおよびタグの署名に使用できます。

サポートされているGPGキーのアルゴリズム

GitHub Enterprise ServerはいくつかのGPGキーアルゴリズムをサポートします。 サポートされていないアルゴリズムで生成されたキーを追加しようとすると、エラーが生じることがあります。

  • RSA
  • ElGamal
  • DSA
  • ECDH
  • ECDSA
  • EdDSA

GPG キーの生成

注: 新しい GPG キーを生成する前にメール アドレスを検証しておいてください。 メール アドレスを確認していない場合、GPG を使用してコミットとタグに署名することはできません。

  1. オペレーティング システム用の GPG コマンド ライン ツールをダウンロードしてインストールします。 通常はオペレーティングシステム向けの最新バージョンをインストールすることをおすすめします。

  2. [ターミナル][ターミナル][Git Bash] を開きます。

  3. GPG キーペアを生成します。 GPG には複数のバージョンがあるため、適切なキー生成コマンドを見つけるには、関連する man ページを参照する必要がある場合があります。 キーには RSA を使用する必要があります。

    • バージョン 2.1.17 以降の場合は、以下のテキストを貼り付けて GPG キーペアを生成します。
      Shell
      $ gpg --full-generate-key
    • バージョン 2.1.17 以降を使用していない場合、gpg --full-generate-key コマンドは機能しません。 以下のテキストを貼り付けてステップ 6 に進んでください。
      Shell
      $ gpg --default-new-key-algo rsa4096 --gen-key
  4. プロンプトで、目的のキーの種類を指定するか、Enter を押して既定値をそのまま使用します。

  5. プロンプトで、目的のキー サイズを指定するか、Enter を押して既定値をそのまま使用します。 キーは少なくとも 4096 ビットである必要があります。

  6. キーの有効期間を入力します。 Enter を押して、無期限を示す既定の選択を指定します。 有効期限が必要な場合を除き、この既定値をそのまま使用することをお勧めします。

  7. 選択内容が正しいことを確認します。

  8. ユーザ ID 情報を入力します。

    注: メール アドレスの入力を求められた場合は、GitHub アカウント用の検証済みメール アドレスを入力してください。

  9. 安全なパスフレーズを入力します。

  10. 公開キーと秘密キーの両方がある GPG キーを長い形式で一覧表示するには、gpg --list-secret-keys --keyid-format=long コマンドを使用します。 コミットやタグに署名するには秘密鍵が必要です。

    Shell
    $ gpg --list-secret-keys --keyid-format=long

    注: Linux での一部の GPG インストールには、代わりに既存のキーの一覧を表示するには、gpg2 --list-keys --keyid-format LONG の使用が必要となる場合があります。 この場合、git config --global gpg.program gpg2 を実行して gpg2 を使用するには、Git を構成する必要もあります。

    1. GPGキーのリストから、使いたいGPGキーIDの長い形式をコピーしてください。 この例では、GPG キー ID は `3AA5C34371567BD2` です。 ```shell{:copy} $ 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 ```
  11. 以下のテキストを貼り付けます。GPG キー ID は実際に使用するものを入力してください。 この例では、GPG キー ID は 3AA5C34371567BD2 です。

    Shell
    $ gpg --armor --export 3AA5C34371567BD2
    # Prints the GPG key ID, in ASCII armor format
  12. -----BEGIN PGP PUBLIC KEY BLOCK----- で始まり、-----END PGP PUBLIC KEY BLOCK----- で終わる GPG キーをコピーします。

  13. GitHub アカウントに GPG キーを追加します

参考資料