# 既存の GPG キーの確認

GPG キーを生成する前に、GPG キーがすでに存在するかどうかを確認できます。

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

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

* RSA
* ElGamal
* DSA
* ECDH
* ECDSA
* EdDSA

> \[!NOTE]
> GPG は、既定では macOS または Windows にインストールされません。 GPG コマンド ライン ツールをインストールするには、[GnuPG のダウンロード ページ](https://www.gnupg.org/download/)を参照してください。

1. <span class="platform-mac">\[ターミナル]</span><span class="platform-linux">\[ターミナル]</span><span class="platform-windows">\[Git Bash]</span> を開きます。
2. 公開キーと秘密キーの両方がある GPG キーを長い形式で一覧表示するには、`gpg --list-secret-keys --keyid-format=long` コマンドを使用します。 コミットやタグに署名するには秘密鍵が必要です。

   ```shell copy
   gpg --list-secret-keys --keyid-format=long
   ```

   > \[!NOTE]
   > Linux 上の GPG のインストールの一部では、既存のキーの一覧を表示するため、代わりに `gpg2 --list-keys --keyid-format LONG` を使うことが必要な場合があります。 この場合、`git config --global gpg.program gpg2` を実行して `gpg2` を使用するには、Git を構成する必要もあります。
3. コマンドの出力結果を見て、GPG キーペアがあるか確認します。
   * GPG キーのペアが存在しないか、既存の GPG キーをコミットやタグへの署名に利用したくない場合、[新しい GPG キーを作成](/ja/authentication/managing-commit-signature-verification/generating-a-new-gpg-key)します。
   * 既存の GPG キー ペアがあり、それを使用してコミットとタグの署名を行う場合は、次のコマンドを使用して公開キーを表示し、使用する GPG キー ID に置き換えます。 この例では、GPG キー ID は `3AA5C34371567BD2` です。

     ```shell
     $ gpg --armor --export 3AA5C34371567BD2
     # Prints the GPG public key, in ASCII armor format
     ```

     オプション `--export-options export-minimal` を指定してキーをエクスポートすることを検討してください。こうすることで、非推奨のフィールドを含むキーの誤読を防ぐことができます。

     その後、[GITHUB アカウントに GPG キーを追加](/ja/authentication/managing-commit-signature-verification/adding-a-gpg-key-to-your-github-account)。

## 参考資料

* [新しい GPG キーを生成する](/ja/authentication/managing-commit-signature-verification/generating-a-new-gpg-key)
* [GitHub アカウントへの GPG キーの追加](/ja/authentication/managing-commit-signature-verification/adding-a-gpg-key-to-your-github-account)
* [Git へ署名キーを伝える](/ja/authentication/managing-commit-signature-verification/telling-git-about-your-signing-key)
* [GPG キーとメールの関連付け](/ja/authentication/managing-commit-signature-verification/associating-an-email-with-your-gpg-key)
* [コミットに署名する](/ja/authentication/managing-commit-signature-verification/signing-commits)
* [タグに署名する](/ja/authentication/managing-commit-signature-verification/signing-tags)