我有以下 6 个子项
$ gpg -K
...
ssb> rsa2048 2017-10-04 [E] [expires: 2027-10-02]
ssb> rsa2048 2017-10-04 [S] [expires: 2027-10-02]
ssb> rsa2048 2017-10-04 [A] [expires: 2027-10-02]
ssb> rsa2048 2015-02-12 [E] [expires: 2025-01-05]
ssb> rsa2048 2016-01-05 [A] [expires: 2026-01-02]
ssb> rsa2048 2016-08-20 [S] [expires: 2026-08-18]
上下文是我买了一张新的智能卡(Yubikey)并为它生成了新的子密钥。我想在我的 pubkey 中记录旧的子键,这样 Github 就会一直将我用旧子键签名的旧提交显示为“已验证”。
但是我想确保从现在开始只使用新的子键。例如,如果有人向我发送加密消息,我希望他们使用新的子密钥。
我注意到gpg -e默认情况下使用我的新加密子密钥,所以这可以按预期工作,但我的问题是为什么?
换句话说,如何gpg确定在加密期间使用哪个密钥?它是基于子项在文件中保存的顺序(如上)还是创建/到期日期(较新的优先)?