gnupg:尝试gpg --gen-key时出错


8

我尝试删除.gnupg目录,但错误返回。

我得到这个:

gpg: lookup_hashtable failed: eof
gpg: lookup_hashtable failed: eof
gpg: upd_hashtable: read failed: eof
gpg: trust record 2, type 12: write failed: eof
gpg: Error: The trustdb is corrupted.
gpg: You may try to re-create the trustdb using the commands:
gpg:   cd ~/.gnupg
gpg:   gpg2 --export-ownertrust > otrust.tmp
gpg:   rm trustdb.gpg
gpg:   gpg2 --import-ownertrust < otrust.tmp
gpg: If that does not work, please consult the manual

我试着按照错误抛出的建议进行操作,但这也不起作用。尝试谷歌搜索问题,但“ lookup_hastable”一无所获。

我还安装了seahorse,并将ssh密钥存储在seahorse中。海马会不会发生冲突?

我正在使用gpg --gen-key普通用户帐户运行,并且没有做任何花哨的事情:只需创建一个标准gpg密钥即可。


您是否遵循错误消息中的指示?
蒂莫西·特拉克

1
这是什么版本的GnuPG?是否存在gpg-agent正在干扰的运行实例,并且可能需要将其终止?
库沙兰丹

2
运行gpg --fix-trustdb
-GAD3R

1
我确实在运行gpg-agent。我杀了它并试图创建另一个密钥:同样的问题。然后我删除了〜/ .gnupg目录,它起作用了!我将尝试重新启动以查看gpg-agent是否再次阻止我。谢谢!
bitofagoob

2
gpg-agent当使用GnuPG 2.1进行关键操作时,它将自动启动,这是应该的。问题是要么您一次使用了两个不同版本的GnuPG,要么是其他.gnupg方式以gpg-agent混淆的方式修改了目录的内容。删除.gnupg目录时,运行gpg-agent时未意识到该目录。那是一种“挥手”的解释。
Kusalananda

Answers:


2

我因lookup_hashtable失败而遇到了类似的问题Unknown system error

我想这是在使用gpg(而不是gpg2)导入私钥后发生的 gpg --allow-secret-key-import --import private.key

此帖子之后设置信任级别,错误消失了。


谢谢,它帮助了!我认为,作为命令的一部分,它正在使用rm,如果它是交互式“ rm -i”,则会失败
kumar

0

我有同样的问题。重要的是要意识到,是有两个主要版本的GnuPG的(“经典”和“稳定”,而且还出现了一个“现代” 2.1gpggpg2(在Fedora Core它们是由包提供gnupg,并gnupg2分别)。

我在Internet上进行了trustdb广泛的搜索,删除了~/.gnupg,但找不到的信息很少,这无济于事。

由于我的OS存储库中有一个旧版本gpg,因此我gpg从官方网站下载了“现代” 版本。出现问题libgrypt,我需要安装较新的库版本gpg才能使用。当我手动执行该操作时,我的系统完全拒绝引导。我想我会尽快修复,但现在我可以在另一台笔记本电脑上工作。

最后,我意识到这里有一个包gnupg2,我使用了命令gpg2而不是gpg。那完美无瑕。你可以设置一个bash alias gpg=gpg2在你的.bash_profile,如果你想在左右所有的数字给忘了。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.