如果设定了 GPG 密钥的有效日期,那请务必留意要及时续期即将过期的密钥。这里记录一下如何将密钥进行续期。

流程

进入命令行列出所有密钥,并选择需要延期的密钥:

1
2
gpg --list-keys
gpg --edit-key <keyID>

现在我们可以来编辑这一枚密钥了。如果需要编辑密钥的子键(subkey),请使用

1
gpg> key 1

来进行选择。选定完成后,输入以下命令完成续期:

1
2
gpg> expire
gpg> save

按照逐步的指南进行操作就可以了。完成修改之后,需要把更新后的密钥上传到密钥服务器。传到哪里无所谓——对于 SKS Keyserver Pool 来说,上传到任何一个服务器都会使密钥在所有服务器之间更新。不妨如此(以下两种方式均可):

1
2
gpg --keyserver pgp.mit.edu --send-keys <keyID>
gpg --keyserver pgp.key-server.io --send-keys <keyID>

这样,更新就完成了。

为什么?

为什么要设定一个有有效期的密钥呢?一个永久不可失效的密钥不好吗?

这样做会增强一定的安全性——但是这很有限。从上面的步骤可以看出,攻击者一旦可以访问私钥,便可以任意延长密钥的有效期限。因此,相比于设定有效期,将密钥的吊销证书妥善保存明显更有用。

设定一个有效期更有“死人开关”(失能开关)这样的意味所在。它更大的意义在于长期不使用密钥的时候使其过期,避免意外造成的安全隐患。但不管怎么说,设定有效期依旧有一定的好处,且并没有什么明显的不足之处。