Gpg

如何獲取 GPG 公鑰大小?

  • July 10, 2019

我正試圖讓我的 GPG 配置恢復到正常的大小。我剛剛使用migrate-pubring-from-classic-gpg 將pubring.gpg 轉換為 pubring.kbx ,但是儘管只包含幾十個公鑰,這些文件都幾乎是 30 MB。如果我對密鑰的正常大小有誤,請糾正我,但我懷疑這可能是因為證書垃圾郵件。所以我試圖找出哪些鍵導致了這個巨大的文件大小(並減少了任何與 GPG 相關的命令),如果這在鍵的位大小之外甚至有意義的話。

磁碟上的密鑰大小與簽名的數量有關,因此找出要調查的密鑰的一種方法是執行類似

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,773sig個條目,佔用不到 1 兆字節。

要查看密鑰環中密鑰的大小,請執行

gpg2 --export ${keyid} | wc -c

引用自:https://unix.stackexchange.com/questions/529337