GnuPG 2.0.xをWindowsで強引に使う方法

つまり、gpg-agentがちゃんと動けば普通に使えるわけなので以下の方法で強引に実行すればOKです。

用意するもの

  • gpg4win 1.1.1以降のパッケージ
  • bgexec 任意のプログラムを背景実行するものです。パスが通るところに置くか、バッチファイル作成時に別途指定してください。

gpg-agentの設定

以下のような設定にします。

keep-display
daemon
use-standard-socket
keep-tty
log-file c:\gpg-agent.txt

log-fileの設定は重要です。どこでもいいので設定してください。*1

実行用バッチファイル

bgexecを使用してgpg-agentを起動するバッチファイルです。ゴミが残っているとエラーになるので最初に削除しています。

@echo off
del "c:\documents and settings\[username]\application data\gnupg\S.gpg-agent"
bgexec gpg-agent
gpg2 -c

尚、最後にgpg2 -cを実行しているのは最初の実行はなぜか失敗するせいです。バッチファイルの実行終了後にgpg -cとするとパスフレーズの入力を促す画面が表示されるはずです。

アプリケーションなどからの実行

これで実行できるようになりますので、Enigmailなどではgpg2を使用するようにしてgpg-agentを使う設定にすると動作すると思います。尚、この場合、パスフレーズはgpg-agentから問い合わせられることになります。

*1:背景出力のために、ログ出力がなくなると動かなくなるようです。

“GnuPG 2.0.xをWindowsで強引に使う方法” への2件の返信

  1. Gpg4win 1.1.3 に入ってる GnuPG 2.0.7 のコマンドを使用しています。
    gpg-agent.conf の設定を参考にさせていただきました。ありがとうございます。
    gpgsm から gpg-agent を起動して、現在のところ正常に動作しているようです。
    コマンドプロンプトを終了しても gpg-agent のプロセスは残っています。
    bgexec は使用していません。
    S.gpg-agent は削除していませんが、エラーは出ません。

  2. gpg-agentは起動後、常駐プロセスとなります。ただし、Windows版において現状のバージョンはあまりうまく作動しない側面があるために、挙動が異常な場合があります。
    個人的には現状は1.4.x系の使用をおすすめしたいと思います。

コメントは受け付けていません。