当尝试访问密钥时,我的 GPG 挂起。现有的解决方案建议 Kill gpg-agent
,但这对我没有帮助。我尝试了调试日志记录(见下文),但无法从中得到任何结果。
我的操作系统是 MacOS Sonoma,我运行的是 Homebrew 的 gpg 2.4.3。
$ pkill -9 gpg-agent
~
$ gpg --version
gpg (GnuPG) 2.4.3
libgcrypt 1.10.2
Copyright (C) 2023 g10 Code GmbH
License GNU GPL-3.0-or-later <https://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Home: /Users/mporkola/.gnupg
Supported algorithms:
Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2
~
$ gpg --list-secret-keys --keyid-format=long --debug-level guru
gpg: enabled debug flags: packet mpi crypto filter iobuf memory cache memstat trust hashing ipc clock lookup extprog
gpg: enabled compatibility flags:
gpg: DBG: [no clock] start
gpg: using pgp trust model
答案1
好的。两天前我的 macOS 安装崩溃后,我随机遇到了这个问题。我运行的是 macOS Sonoma 14.2.1。我真的不知道发生了什么,我遇到这个问题是因为我的 Emacs 挂起,正在使用find-file
.
冻结我的 Emacs 的命令似乎是:
/usr/local/bin/gpg --with-colons --no-greeting --batch --with-fingerprint --with-fingerprint --fixed-list-mode --list-keys "Frederick"
解决方案
一个明显的解决方案(降级 gpg)
对于 Doom Emacs 存储库上这个看似无关的问题,一位 Arch Linux 用户报告了保存gpg
文件时挂起的情况。他们的解决方案是安装[email protected]
,因为最新版本似乎有问题2.4.3
。
[doomemacs/doomemacs] 无法保存 epa 加密的 org .gpg 文件 #7589
鉴于他们的解决方案是降级到[email protected]
,我想我会尝试同样的方法。运行以下命令似乎只是工作:
brew uninstall --ignore-dependencies gnupg; # uninstall gpg
brew install [email protected]; # install [email protected]
brew link [email protected]; # link the new version of gpg to /usr/local/bin
运行这些命令后,一切似乎都是这样只是工作。上面的命令将不再挂起。
开始gpg v2.4.3
工作
在我完成安装工作版本的整个过程之前[email protected]
,当我第一次运行hanging命令时,它无法获取锁定~/.gnupg
。查看活动监视器,我发现有大量gpg
进程正在运行。很快killall gpg
就杀死了进程。
我删除了位于 的锁定文件~/.gnupg/gnupg_spawn_keyboxd_sentinel.lock
。没用。这是关于我开始安装时的情况[email protected]
。
但后来我看到有其他锁定文件。即,~/.gnupg/public-keys.d/pubring.db.lock
.我第一次没有删除这个锁定文件。
所以。让我们重新安装最新的gnupg
......在我这样做之前,我没有删除那个锁定文件。
- 命令:
brew uninstall --ignore-dependencies [email protected]; brew install gnupg;
- 验证
gpg
是否卡住:
太棒了!(?)它仍然卡住了。/usr/local/bin/gpg --with-colons --no-greeting --batch --with-fingerprint --with-fingerprint --fixed-list-mode --list-keys "Frederick"
~/.gnupg/gnupg_spawn_keyboxd_sentinel.lock
如果我们现在删除和处的锁定文件~/.gnupg/public-keys.d/pubring.db.lock
,上面的命令似乎可以工作!
还有一些问题
关于上面的 @Kusalananda 评论,我不知道我的设置中是否有 GnuPG 密钥。也许我做到了?但是对于
[email protected]
和gnupg
软件包(一旦我让它们工作)我收到了消息:gpg: error reading key: No public key
好吧...有趣。
但这是什么原因造成的呢?
- 这是一个好问题。我的 Emacs 工作正常,然后我遇到了断电事件,然后它就不再工作了(由于挂起
gpg
)。 gnupg
2.4.3
在撰写本文时已更新至大约 9 个月前。所以我认为这不是升级问题。考虑到这种情况发生在断电事件之后,处理该 db.lock
文件,并且[email protected]
安装时没有出现此问题,我敢打赌,也许引入了一些尊重该 db.lock
文件的内容。只是一个猜测...
- 这是一个好问题。我的 Emacs 工作正常,然后我遇到了断电事件,然后它就不再工作了(由于挂起
从上面关于丢失钥匙的评论以及我收到这些消息的事实来看,也许这是相关的。我不确定我是否有钥匙并且它们被损坏了或者什么。无论哪种方式,这似乎都不是
[email protected]
.
我最初在 Doom Emacs Github 问题跟踪器的另一个问题上发布了我的问题。用户遇到了断电事件,无法再打开文件。我想知道断电事件是否与我们遇到的问题有关gpg
。他们没有报告任何问题gpg
,但似乎他们没有发布太多调试信息。
[doomemacs/doomemacs] MacOS Ventura 中的全新安装在打开任何文件时都会冻结 #7289