我正在使用pass来管理我的密码。它使用我的 GPG 密钥进行加密。
我的密钥最近过期了,我创建了一个新的。
pass 由于我的旧密钥过期,将不再创建新密码。
我可以解密现有的密码。它使用旧 ID3D1B47D3解密时我看到gpg: Note: secret key 3D1B47D3 expired at Sun 02 Jul 2017 16:36:45 BST。
3D1B47D3是我的旧密钥 ID,1F7CCC88是我的新密钥 ID。
因此我需要~/.password-store使用我的新密钥重新加密。文档说 using pass init 1F7CCC88应该这样做。
但是我收到错误:
gpg: [stdin]: encryption failed: Unusable public key
gpg: Note: secret key 3D1B47D3 expired at Sun 02 Jul 2017 16:36:45 BST`.
Run Code Online (Sandbox Code Playgroud)
每个密码都会重复该错误。
~/.password-store/.gpg-id包含我自运行以来的新密钥 ID init。
我可以gpg --encrypt filename使用我的新密钥手动加密文件。
请注意,我的密钥和子密钥都有将来的到期日期。
pub 4096R/1F7CCC88 2016-07-02 [expires: 2018-07-28]
uid Kris Leech <kris.leech@gmail.com>
sub 4096R/3D1B47D3 2016-07-02 [expires: 2018-07-28]
sub 2048R/E77481E9 2016-07-28 [expires: 2018-07-28]
Run Code Online (Sandbox Code Playgroud)
小智 0
看起来 pass 使用的是 gpg2,您使用 gpg 创建了密钥,并且 gpg2 不支持某些内容(不推荐使用 md5?)。
例如用 gpg 解密可以工作:
$ gpg -d --quiet secret.gpg
You need a passphrase to unlock the secret key for
user: "bot three (third bot) <bot3@blah.com>"
2048-bit RSA key, ID 2A8EA0F6, created 2017-08-24 (main key ID 2003591B)
something much longer then blah
Run Code Online (Sandbox Code Playgroud)
而 gpg2 则不会:
$ gpg2 -d --quiet secret.gpg
gpg: decryption failed: No secret key
Run Code Online (Sandbox Code Playgroud)
重命名 gpg2 强制传递使用 gpg:
# mv /usr/bin/gpg2 /usr/bin/gpg2-css
$ pass show test/secret
something much longer then blah
Run Code Online (Sandbox Code Playgroud)
你能做的是:
此时应该再次工作。从这里开始,使用 gpg2,而不是 gpg。
嗯。
| 归档时间: |
|
| 查看次数: |
3859 次 |
| 最近记录: |