Skip to main content

Git へ署名キーを伝える

ローカルでコミットに署名する場合は、使用したい GPG、SSH、または X.509 キーがあることを Git に知らせる必要があります。

Platform navigation

Git へ GPG キーを伝える

コミッター ID と一致する GPG キーと、GitHub.com でのアカウントに関連付けられた確認済みのメール アドレスを使用している場合は、コミットの署名とタグの署名を開始できます。

Note

コミッターアイデンティティにマッチする GPG キーを持っていない場合、既存のキーとメールアドレスを関連付ける必要があります。 詳しくは、「GPG キーとメールの関連付け」をご覧ください。

複数の GPG キーを持っている場合、どれを使うかを Git に伝える必要があります。

  1. [ターミナル] を開きます。

  2. --gpg-sign で署名するときに別のキー形式を使うように以前、git を構成している場合、openpgp の既定形式が使用されるよう、この構成を解除してください。

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

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

    Note

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

  4. GPGキーのリストから、使いたいGPGキーIDの長い形式をコピーしてください。 この例では、GPG キー ID は 3AA5C34371567BD2 です。

    Shell
    $ 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.com>
    ssb   4096R/4BB6D45482678BE3 2016-03-10
    
  5. Git でプライマリ GPG 署名キーを設定するには、以下のテキストを貼り付けて、使いたいプライマリ GPG キー ID に置き換えます。 この例では、GPG キー ID は 3AA5C34371567BD2 です。

    git config --global user.signingkey 3AA5C34371567BD2
    

    一方、サブキーを使用したい場合もあります。 この例の GPG サブキー ID は 4BB6D45482678BE3 です。

    git config --global user.signingkey 4BB6D45482678BE3
    

    複数のキーとサブキーを使用する場合は、キーに感嘆符 ! を追加して、これが優先キーであることを git に伝える必要があります。 場合によっては、バック スラッシュで感嘆符をエスケープする必要があります (\!)。

  6. 必要に応じて、既定ですべてのコミットとタグに署名するように Git を構成するには、次のコマンドを入力します。

    git config --global commit.gpgsign true
    git config --global tag.gpgSign true
    

    詳しくは、「コミットに署名する」をご覧ください。

  7. GPG キーを .bashrc スタートアップ ファイルに追加するには、次のコマンドを実行します。

    [ -f ~/.bashrc ] && echo -e '\nexport GPG_TTY=$(tty)' >> ~/.bashrc
    

Git に SSH キーについて知らせる

既存の SSH キーを使ってコミットとタグに署名することも、署名専用に新しいキーを生成することもできます。 詳しくは、「新しい SSH キーを生成して ssh-agent に追加する」をご覧ください。

Note

SSH 署名の検証は、Git 2.34 以降で利用できます。 git の最新バージョンを入手するには、Git の Web サイトを参照してください。

  1. [ターミナル] を開きます。

  2. コミットやタグの署名に SSH を使うよう Git を構成します。

    git config --global gpg.format ssh
    
  3. Git に SSH 署名キーを設定するには、次のテキストを貼り付けて、/PATH/TO/.SSH/KEY.PUB の部分を、使いたい公開キーへのパスに置き換えます。

    git config --global user.signingkey /PATH/TO/.SSH/KEY.PUB
    

参考資料