数理的手法を使いやすくするためのソフトウェア開発

科学技術計算とデータサイエンスについて

macOS で .gpg ファイルを emacs から復号・編集・暗号化するために

Ubuntu で作った gpg ファイルを、macOSでも操作するために、必要なソフトをインストールして、設定しました。 (何をしたのか忘れかけているので、メモとして書いておきます。)

macOSバージョン

  • Mojave バージョン 10.14.6

Homebrew のインストール

参考:Qiita: macOSにHomebrewをインストール

$ /usr/bin/ruby -e \
"$(curl -fsSL \
https://raw.githubusercontent.com/Homebrew/install/master/install)"

emacs のインストール

参考:Qiita: homebrewからインストールできるemacsの違い

私は、ターミナルでemacsと打ったときには別ウィンドウでemacsが開いてほしいので、cask版emacsをインストールしました。

brew cask install emacs

gpg のインストール

参考: OS X の Emacs で EasyPG が gpg2 で Opening input file: Decryption failed, になったので対処した

他に以下をインストールしました。

  • gnupg: stable 2.2.17
  • pinentry: stable 1.1.0
  • pinentry-mac: stable 0.9.4

設定

emacs で、gpg ファイルを復号化して編集できるようになるまで、試行錯誤が必要でした。

参考: Login Register gpg 2.2 and epa

$ cat ~/.gnupg/gpg.conf 
ignore-mdc-error

参考: OS X の Emacs で EasyPG が gpg2 で Opening input file: Decryption failed, になったので対処した

~/.gnupg/gpg-agent.conf を作成して pinentry-program /usr/local/bin/pinentry-mac という設定を入れたところ、 Emacs 上でも *.gpg ファイルを開くときに pinentry-macパスフレーズをきかれるようになって、開けるようになりました。

$ cat .gnupg/gpg-agent.conf
# allow-emacs-pinentry
pinentry-program /usr/local/bin/pinentry-mac

注意すること

.gpg ファイルを編集・暗号化すると、そのパスフレーズは gpg-agent にキャッシュされる

なので、そのパスフレーズ で、.gpg ファイルが復号できるかを確認するには、パスフレーズを入力したターミナルとは、別のターミナルから、emacs を立ち上げる必要があります。

そこで、gpg-agent を一旦、止めて、再起動してから、.gpg ファイルが復号できるかを確認しています。(もっとスマートな方法を探していますが、わからないので。)

$ gpg-connect-agent killagent /bye
OK closing connection

$ gpg-connect-agent /bye
gpg-connect-agent: gpg-agentが実行されていません - '/usr/local/Cellar/gnupg/2.2.17/bin/gpg-agent'を開始します
gpg-connect-agent: agent の起動のため、5秒待ちます...
gpg-connect-agent: agent への接続が確立しました。

こうしないと、キャッシュされたパスフレーズemacsはその.gpgファイルを復号化してしまいます。

iCloud のDocumentsフォルダに、change directory するには

MacBook Air の使い方がまだわかっていないのかもしれませんが、 デフォルトでファイルは iCloud に保存するようになっているようです。

参考: ターミナルからiCloud driveに移動する方法

$ cd /Users/${USER}/Library/Mobile\ Documents/com~apple~CloudDocs/Documents