前言

之前我们介绍了 GPG 的使用,也介绍了用 GPG 来管理自己的密码。

今天我们来讲一讲在 Emacs 中配合 GPG 加密 Org mode

emacs 配置

在使用 GPG 加密之前,我们先要对 Emacs 进行配置。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
(use-package org-crypt
  :ensure nil
  :demand t
  :config
  ;; 在文件加密之前进行保存
  (org-crypt-use-before-save-magic)
  ;; 设置要加密的 TAG 为 crypt
  (setq org-crypt-tag-matcher "crypt"
        ;; 防止子 TAG 也为 crypt,进行再次加密
        org-tags-exclude-from-inheritance (quote ("crypt"))
        ;; 设置要使用加密的 GPG 账户
        org-crypt-key "test1"))

使用

配置好 Emacs 后,我们创建一个 test.org 并为标题添加 cryptTAG ,然后保存文件, Emacs 会自动把含有 crypt 的内容进行加密。 解密使用 org-decrypt-entry

Mac 下的问题及解决方案

Mac 上使用的时候,会发现没办法输入密码,通过如下配置可以解决。

1
2
(use-package pinentry
  :hook(after-init . pinentry-start))

碰到的问题

如果你之前有使用过 GPG 很可能会碰到 Error: (error "Encrypt failed") 这个错误,我找了半天,终于在 Symmetric file encryption with emacs / Stable / Discussion Area - GPGTools Support 这里找到了解决办法,折腾了好久。

解决的办法很简单,把 GPG 进程杀死,然后重新操作就可以了。

1
2
3
➜  ~ ps ax |grep gpg
14650   ??  Ss     0:00.33 gpg-agent --homedir /Users/test/.gnupg --use-standard-socket --daemon
➜  ~ kill 14650

总结

GPG 相关的内容,到这里就全部讲完了。

我在日常中主要使用 GPG 来加密文件,管理密码,并配合 Emacs 使用。

参考