GPG 在 MacOS 上挂起

GPG 在 MacOS 上挂起

当尝试访问密钥时,我的 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)。
    • gnupg2.4.3在撰写本文时已更新至大约 9 个月前。所以我认为这不是升级问题。考虑到这种情况发生在断电事件之后,处理该 db.lock文件,并且[email protected]安装时没有出现此问题,我敢打赌,也许引入了一些尊重该 db.lock文件的内容。只是一个猜测...
  • 从上面关于丢失钥匙的评论以及我收到这些消息的事实来看,也许这是相关的。我不确定我是否有钥匙并且它们被损坏了或者什么。无论哪种方式,这似乎都不是[email protected].

我最初在 Doom Emacs Github 问题跟踪器的另一个问题上发布了我的问题。用户遇到了断电事件,无法再打开文件。我想知道断电事件是否与我们遇到的问题有关gpg。他们没有报告任何问题gpg,但似乎他们没有发布太多调试信息。

[doomemacs/doomemacs] MacOS Ventura 中的全新安装在打开任何文件时都会冻结 #7289

相关内容