如何在服务器上撤销PGP密钥?

这是情况,我很久以前生成了一个PGP密钥,但是我丢失了私钥。然而,我在我的USB驱动器上有一个撤销证书,我想要撤销这个密钥。
在网上搜索后,我找到了这个解决方案。
$ gpg --import /path/to/usb/revocert-01324567.asc
gpg: key 01324567: no public key - can't apply revocation certificate
gpg: Total number processed: 1

我不确定如何从密钥服务器下载我的公钥,以及如何上传它。希望能得到帮助。
1个回答

然而,我在我的USB驱动器上有一个撤销证书,我想要撤销这个密钥。
你很幸运,很多人都没有这样的证书,现在可能会迷失方向。
使用命令行操作
$ gpg --import /path/to/usb/revocert-01324567.asc
gpg: key 01324567: no public key - can't apply revocation certificate
gpg: Total number processed: 1

你已经正确找到了导入吊销证书的方法,但是还缺少你的公钥。这很容易导入,只需运行以下命令即可。
gpg --recv-keys [key-id]

现在使用以前失败的命令导入密钥。
gpg --import [revocation-certificate-file]

完成后,再次将密钥发送回密钥服务器:
gpg --send-keys [key-id]

请分别将[key-id][revocation-certificate-file]替换为您的密钥ID和吊销证书文件名。如果您仍然知道您的密钥ID(可能包含在您的吊销证书文件名中),否则可以使用gpg --search [mail address]在密钥服务器上查询ID。

使用Web界面

另一种选择(如果您的吊销证书是ASCII编码的文件,而不是二进制文件)是使用您选择的任何密钥服务器的Web界面,您可以直接粘贴吊销证书。http://keyserver.ubuntu.com的界面没有单独的字段用于吊销证书,但是“提交新的OpenPGP密钥”字段也应该接受您的(ASCII编码的)吊销证书。之后搜索您的密钥以验证是否已正确吊销。

吊销证书的同步

(大多数)密钥服务器会相互交换新的密钥数据,包括您的吊销证书。只需等待一段时间(几分钟、几小时),它应该在整个密钥服务器网络中传播开来。


1http://keyserver.ubuntu.com 出现错误信息:"添加失败:这是一个独立的撤销证书。在发布到密钥服务器之前,应将撤销证书导入到相应的公钥中"。难道独立(任何东西)的意义不就是可以在没有其他信息的情况下使用吗? - C.Rogers
OpenPGP几乎总是将公钥视为其所有单独数据包的集合,其中撤销是其中一种。只需将其添加到相应的公钥或导入密钥和证书的末尾,然后上传到密钥服务器即可。这只是一般用例,可能没有人费心为OpenPGP数据包在公钥之前没有特殊程序(额外的实现工作和更复杂的操作)进行实现,因为这种情况预计很少出现或不存在。 - Jens Erat