我尝试将密码添加到“通过”密码管理器。但是,我的尝试因“没有公钥” GPG错误而失败。为什么?


27

我正在尝试安装Pass:标准Unix密码管理器,但是,当我尝试向应用程序添加密码时,出现这些错误

gpg: Kelly's Passwords: skipped: No public key
gpg: [stdin]: encryption failed: No public key

GPG公钥?

当我键入命令时,gpg --list-keys我得到:

/home/khays/.gnupg/pubring.gpg
------------------------------
pub   2048R/64290B2D 2012-11-05
uid                  Kelly Hays <hays.kelly@gmail.com>
sub   2048R/0DF57DA8 2012-11-05

我有点不知道如何解决这个问题,有什么想法吗?

Answers:


28

您是如何创建密码存储的?pass init "Kelly's Passwords"?如果是这样,这是错误的,您应该致电pass init 64290B2D

如果这样,pass insert foo将失败并显示:

gpg: fooo: skipped: public key not found
gpg: [stdin]: encryption failed: public key not found

那么你必须先相信自己的密钥(gpg --edit-key 64290B2Dtrust5save)。


对于那些像我这样落后的人,我要补充一下,您应该首先使用gpg --generate-key
ItayB

2
@ItayB生成gpg密钥的命令实际上是gpg --gen-key(在gpg 1.4.20中)
Rubanov

在一种情况下,使用gpgXubuntu下的(版本1.4.20)总是会导致失败(通过生成密码pass)。使用gpg2(版本2.1.11)使一切正常。
Nikos Alexandris

“密钥”,例如64290B2D,是您用来识别密钥的任何内容,在我的情况下是电子邮件地址,以uid形式显示为uidgpg -k
John Mee,

5

同样的迹象,如果有人偶然发现此问题,解决方案可能会有所不同。您pass正在使用gpg2而不是gpg,您可能曾经使用过生成/管理密钥(反之亦然)。验证:

bash -x $(which pass) insert foo

2
WTF !?为什么将gpg和gpg2都安装在新系统上?为什么通行证手册及其网站都不在乎提到如何创建!@#&%该死的gpg密钥???
托比亚

2
如果已经使用GPG 1生成了-您可以将其导入到GPG 2中,如下所示:gpg2 --import ~/.gnupg/secring.gpg
maxschlepzig

2

我有一段时间遇到相同的错误,在调试中运行bash会有所帮助。(bash -x),然后我意识到pass已在.password-store / .gpg-id中列出了一个不存在的gpg-key


1

我遇到了同样的错误,但是检查得到gpg2 --list-keys了我

pub   rsa4096/0x12345678 2016-11-22 [SC] [expired: 2018-11-26]

所以我的解决方案是

gpg --edit-key 0x12345678
gpg> expire
...
gpg> save

参见https://unix.stackexchange.com/a/177310/14315

如果您必须续订子项,请使用以下命令:

> e.g. if the subkey whose validity you want to extend is the first listed
> subkey, or if it is the only listed subkey, then the  command would be
> Command> key 1
> this will put a * after the word sub, indicating that this particular
> subkey has been selected. then
> Command> expire
> and follow the prompts.

来源https://lists.gnupg.org/pipermail/gnupg-users/2005-June/026063.html

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.