我正在尝试将我的 GPG 配置恢复到正常大小。我刚刚使用以下命令将 pubring.gpg 转换为 pubring.kbx从经典 gpg 迁移发布,但尽管只包含几十个公钥,但这些文件都接近 30 MB。如果我对钥匙的正常尺寸有误,请纠正我,但我怀疑这可能是因为证书垃圾邮件。因此,我试图找出哪些键导致了如此巨大的文件大小(并减少了任何与 GPG 相关的命令),如果这在键位大小之外还有意义的话。
答案1
磁盘上密钥的大小与签名的数量有关,因此找出要调查哪些密钥的一种方法是运行类似的命令
gpg2 --with-colons --list-keys --with-sig-list |
awk -F: 'function dump(key, uid, sigs) {
if (key && uid) {
printf "%s: %d (%s)\n", key, sigs, uid
}
}
/^pub/ { dump(key, uid, sigs); key = $5; sigs = 0 }
/^uid/ { dump(key, uid, sigs); uid = $10; sigs = 0 }
/^sig/ { sigs++ }
END { dump(key, uid, sigs) }' |
sort -n -k2,2
(由于包含了子密钥签名,因此计算略有错误,但错误并不严重。)
非垃圾邮件密钥不应显示超过几千个签名;我的(清理后的)密钥环中最大的密钥是 Werner Koch 的 0xF2AD85AC1E42B367,它显示 4,773 个sig
条目,占用不到 1 MB。
要查看密钥环中密钥的大小,请运行
gpg2 --export ${keyid} | wc -c