GPGの暗号化/複合化が遅い問題
09 August 2021
gpgの暗号化/複合化が遅い問題
最近のEmacsにはgpgを扱う機能が標準で組込まれている。
拡張子を.gpg
にして新規にファイルを作るだけでGnuPGで暗号化されたファイルを作ってくれる。また、.gpg
拡張子のファイルを開くと自動でパスフレーズを聞いてきて復号してくれる。
しかしいつからか、ubuntuで暗号化/復号化する際にパスフレーズ入力前に数十秒止まるようになってしまった(二回目以降はgpg-agentが覚えていてくれるが)。 検索すると、なんでもgnome-keyring-daemonとの関係でタイムアウトまで待たされているらしい。
色々試してとりあえずの解決をみたので、メモしておく
パスフレーズ入力のUIであるpinentryをpinentry-gnome3からpinentry-ttyにする
インストールされていなければaptで入れる sudo apt install pinentry-tty
~/.gnupg/gpg-agent.conf
を編集
以下を追加
pinentry-program /usr/bin/pinentry-tty
allow-emacs-pinentry
allow-loopback-pinentry
~/.emacs.d/init.el
を編集
以下を追加
(setq epa-pinentry-mode 'loopback)
元々はpinentry-gnome3が指定されていたので、パスフレーズ入力時にGTK3のプロンプトが出ていたが、以降はターミナルに直接入力 or Emacsならミニバッファに入力するようになる。