这个问题出现在“如何以不那么黑客的方式显示我的加密密钥的使用标志? ”的评论中,似乎值得以问答形式回答,因为答案实际上并不明显。
要查看 Torvald 的 OpenPGP 密钥 449FA3AB,我使用gpg2 --list-keys 449FA3AB,它输出
$ gpg2 --list-keys 449FA3AB
pub 1024D/449FA3AB 1999-10-05 [expired: 2001-10-04]
uid [ expired] Linus Torvalds <torvalds@transmeta.com>
Run Code Online (Sandbox Code Playgroud)
通常,此命令还会列出子键,但不会为 Torvald 的键打印子键。然而,当请求批量输出时,包含一个。
$ gpg2 --with-colons --list-keys 449FA3AB
tru::1:1414619239:1414879758:3:1:5
pub:e:1024:17:956EB7BF449FA3AB:939086351:1002158351::-:::sca:
uid:e::::939086351::81A3799583B9B1B391E4C428112F302FF2ADF462::Linus Torvalds <torvalds@transmeta.com>:
sub:e:2048:16:71CE8207BFF491C5:939086545:1002158545:::::e:
Run Code Online (Sandbox Code Playgroud)
似乎这个 Torvalds-key 有一些隐藏子键的特殊功能。这里发生了什么?
Jen*_*rat 20
这不是什么特别的功能,但是 Torvalds 的主键已经过期很久了,因此子键也过期了。答案隐藏在--list-options手册页的GnuPG部分,因为默认情况下过期的子键是隐藏的。来自man gpg2:
show-unusable-subkeys
Show revoked and expired subkeys in key listings. Defaults to no.
Run Code Online (Sandbox Code Playgroud)
通过指定此参数,子项将显示:
$ gpg2 --list-options show-unusable-subkeys --list-keys 449FA3AB
pub 1024D/449FA3AB 1999-10-05 [expired: 2001-10-04]
uid [ expired] Linus Torvalds <torvalds@transmeta.com>
sub 2048g/BFF491C5 1999-10-05 [expired: 2001-10-04]
Run Code Online (Sandbox Code Playgroud)
您还可以使用有用的faketime程序来验证这一点,将 GnuPG 的系统时间设置回几年。通过回到 Torvalds 密钥有效的某个日期,子密钥将再次出现:
$ faketime 2001-01-01 gpg2 --list-keys 449FA3AB
pub 1024D/449FA3AB 1999-10-05 [expires: 2001-10-04]
uid [ unknown] Linus Torvalds <torvalds@transmeta.com>
sub 2048g/BFF491C5 1999-10-05 [expires: 2001-10-04]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10095 次 |
| 最近记录: |