pass和gpg:无公钥


13

我使用通行证已经很长时间了;但是将密钥存储和gpg密钥导出到另一台机器后,我看到以下输出:

$ gpg --list-key
/home/shved/.gnupg/pubring.gpg
------------------------------
pub   2048R/FA829B53 2015-04-28
uid       [ultimate] Yury Shvedov (shved) <shved@lvk.cs.msu.su>
sub   2048R/74270D4A 2015-04-28

我的密钥已导入并值得信任,但无法使用:

pass insert test
Enter password for test: 
Retype password for test: 
gpg: 2048R/FA829B53: skipped: No public key
gpg: [stdin]: encryption failed: No public key
fatal: pathspec '/home/shved/.password-store/test.gpg' did not match any files

我该怎么做才能再次使用我的钥匙?

Answers:


12

pass使用gnupg2,它不与gnupg 1.x共享它的密钥环。

再次使用gnupg2而不是gnupg导入密钥。如果您已经在目标计算机上的gnupg中拥有了密钥,请运行:

$ gpg --export-secret-keys > keyfile
$ gpg2 --import keyfile

导入后,您可能需要更新对密钥的信任。Secret key is available.如果导入成功,您应该看到一条消息:

$ gpg2 --edit-key FA829B53
[...]
Secret key is available.

sec  rsa4096/FA829B53
     created: 2015-03-14  expires: 2017-03-13  usage: SC  
     trust: unknown      validity: ultimate
ssb  rsa4096/74270D4A
     created: 2015-03-14  expires: 2017-03-13  usage: E   
[ultimate] (1). Yury Shvedov (shved) <shved@lvk.cs.msu.su>

现在更新对密钥的信任:

gpg> trust
[...]
Your decision? 5
Do you really want to set this key to ultimate trust? (y/N) y
[...]
gpg> save

通过(至少1.6.3版)gpg不使用gpg2。而gpg2只是重新设计。只有2.1版本做了一些改变来(公共密钥环相结合的公钥和私钥。
安森

对于我的版本(1.6.5),情况并非如此。从源代码中:10 GPG =“ gpg” 11 export GPG_TTY =“ $ {GPG_TTY:-$(tty 2> / dev / null)}” 12其中gpg2&> / dev / null && GPG =“ gpg2” 13 [ [-n $ GPG_AGENT_INFO || $ GPG ==“ gpg2”]] && GPG_OPTS + =(“ --batch”“ --use-agent”)这意味着'pass'使用gpg,除非同一系统上存在gpg2。
卢卡斯李氏

1
因此,除非安装了gpg2且兼容,否则它会使用gpg,并且它们兼容,否则,如果您在开始使用pass后的某个时间碰巧安装了gpg2,就会遇到可怕的问题(因为它不应该放在第一位有时会将未加密的数据保留在“存储”目录中)。
Anthon

首先,这不是您在第一个答复中所说的。其次,您尚未回复我关于他们不共享钥匙圈的观点。第三,它们仅兼容,因为如果给定了适当的密钥,它们都可以解密消息。
卢卡斯李氏

7

输出线

gpg: 2048R/FA829B53: skipped: No public key

显示错误的pass初始化。您pass使用命令进行了初始化,pass init 2048R/FA829B53而应该使用命令进行了初始化pass init FA829B53。要解决该问题,您应该将文件的内容~/.password-store/.gpg-id从更改2048R/FA829B53FA829B53并提交更改。

聚苯乙烯

@ŁukaszLis建议的所有信息都是正确的,您也应该完成这些操作。在其他情况下,您将无法解密通行证:

$ pass -c test

会给你一个错误: gpg: decryption failed: No secret key


有用。它可能发生(mis-)type pass init SomethigElseThanFirstStore
Nikos Alexandris,

0

我在创建新商店时注意到了这一点,并使用“ 2048R / FA829B53”之类的键ID对其进行了初始化,我认为这是过去的操作方式,而查看旧备份的.gpg_id是不同的。

但是,现在看来只使用了FA829B53,而在当前的手册页中,作者使用了他的电子邮件地址。

我会检查gpg_id文件,对我来说,在新存储中只有FA829B53而没有其他行


0

验证文件中您信任的密钥是否相同 ~/.password-store/.gpg-id


这不能为问题提供答案。要批评或要求作者澄清,请在其帖子下方发表评论。- 评论
Kevdog777

确实,我遇到了同样的问题,为此我解决了
m3asmi
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.