LoginSignup
3
2

More than 3 years have passed since last update.

macOS / Windows の Git 用に GnuPG (GPG) を準備する

Posted at

macOS や Windows の Git でタグやコミットに署名できるように GnuPG (The GNU Privacy Guard) をインストールする手順や注意事項です。

実際に署名を付ける手順は以下などを参照ください。

macOS

前提

  • Homebrew が使えること
  • Git が使えること

インストール

GnpPG のインストール

brew install gnupg

pinentry-mac のインストール

GnuPG をインストールしただけでは、Git の CLI を直接使わずにコミットするときなど、秘密鍵を使うときのパスフレーズの入力に難があるので 1、 pinentry-mac を使うように構成します。

brew install pinentry-mac

インストール後に表示される以下のメッセージの通りに ~/.gnupg/gpg-agent.conf を作成します。

==> Caveats
You can now set this as your pinentry program like

~/.gnupg/gpg-agent.conf
    pinentry-program /usr/local/bin/pinentry-mac

以下のコマンドをそのまま実行すれば良いでしょう。

echo "pinentry-program /usr/local/bin/pinentry-mac" >> ~/.gnupg/gpg-agent.conf

これで、秘密鍵を使うときにパスフレーズの入力でウィンドウが表示されるようになります。

スクリーンショット 2020-12-27 19.34.59.png

期待したとおりに動かないとき

gpg-agent を停止してから試してみると良いかも。

gpgconf --kill gpg-agent

Windows

前提

  • Git for Windows が使えること

GnuPG のインストールについて

Git for Windows に GnuPG が付いているため、改めてインストールする必要はありません。 2 3

gpg コマンドの実行について

GPG キーペアの作成など、gpg コマンドは Git Bash 上で使います。

通常の状態では gpg コマンドは PowerShell やコマンドプロンプトから使えないので、普段これらのシェルから git コマンドを使っている場合は注意が必要です。 4


  1. MacVim by macvim-devtpope/vim-fugitive: fugitive.vim: A Git wrapper so awesome, it should be illegal:Gcommit を使うときにパスフレーズを入力出来ないなど。 

  2. choco install gnupg などとして GnuPG をインストールし、Git がこれを使うように git config で設定することもできるとは思いますが、.gitconfig のポータビリティがなくなるので私は諦めました。 

  3. Git for Windows 同梱版や Windows 以外の GnuPG で使用される ~/.gnupg ディレクトリが、Windows 用の GnuPG では %APPDATA%\gnupg になるなどの違いがあります。コマンドオプションや環境変数を設定して同じディレクトリを参照するようにもできますが、同じディレクトリを共用するとファイルのロック操作に不具合を生じるようです。 

  4. 環境変数 PATH を適切に設定すれば使えるようですが。 

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2