如何在密钥服务器正确撤销GPG密钥及验证撤销状态?
我来帮你梳理一下从生成有效撤销证书到验证全网状态的全流程,解决你之前遇到的撤销未验证、状态不明确的问题:
一、彻底完成GPG密钥撤销的步骤
首先要记住:必须持有对应密钥的私钥才能完成有效撤销,这是核心前提。
生成正式的撤销证书
打开终端,运行以下命令(把[你的密钥ID/绑定邮箱]换成你自己的密钥ID或绑定的邮箱地址):gpg --gen-revoke [你的密钥ID/绑定邮箱]按照提示选择撤销原因(推荐选
2 = 密钥不再使用或3 = 替换密钥),输入简短的描述说明,最后确认生成。如果你想把证书保存到文件方便后续操作,可以加-o参数:gpg --gen-revoke -o revoke.asc [你的密钥ID/绑定邮箱]导入并应用撤销证书到本地密钥环
不管是直接生成还是保存到文件,都需要把撤销证书导入本地GPG,让本地密钥先标记为已撤销:gpg --import revoke.asc同步撤销状态到多个主流密钥服务器
不要只上传到单个服务器,手动同步几个大的服务器能加快全网同步速度:# 同步到SKS密钥池(包含多个服务器) gpg --keyserver pool.sks-keyservers.net --send-keys [你的密钥ID] # 同步到MIT密钥服务器 gpg --keyserver pgp.mit.edu --send-keys [你的密钥ID] # 同步到Ubuntu密钥服务器 gpg --keyserver keyserver.ubuntu.com --send-keys [你的密钥ID]
二、验证密钥是否已彻底撤销并停止被使用
这部分是你最关心的,分三个维度验证:
本地密钥环验证
运行命令查看本地密钥状态,确认是否标记为已撤销:gpg --list-keys [你的密钥ID]输出内容里如果看到
rev:字段,或者明确标注Revoked,说明本地已成功标记。你也可以进入密钥编辑界面查看更详细的状态:gpg --edit-key [你的密钥ID]输入
list命令后,已撤销的密钥会在状态栏显示revoked标识。密钥服务器在线验证
直接访问密钥服务器的搜索页面(比如pgp.mit.edu),输入你的密钥ID或邮箱,查看密钥详情:正常情况下,已撤销的密钥会在详情页显示
Revocation Certificate条目,并且密钥整体状态会标记为Revoked。
也可以用终端命令拉取服务器上的密钥,再本地验证:# 从MIT服务器拉取最新密钥 gpg --keyserver pgp.mit.edu --recv-keys [你的密钥ID] # 查看拉取后的状态 gpg --list-keys [你的密钥ID]建议多查几个不同的密钥服务器,确保同步状态一致。
注意:密钥服务器同步有延迟
不同服务器之间的同步可能需要几小时甚至1天时间,如果刚操作完没看到撤销状态,别着急,过几个小时再重复验证步骤。如果某个服务器一直没同步,重新发送一次密钥即可。
内容的提问来源于stack exchange,提问作者Bayu Dwiyan Satria

