簡體   English   中英

如何讓 gpg 生成 GPG 密鑰公共環而不是密鑰箱?

[英]How do I get gpg to generate a GPG Key public ring rather than a keybox?

我正在嘗試獲取公鑰並將其添加到/etc/apt/trusted.gpg.d/ ,但我遇到了不兼容問題。

我跑:

gpg --no-default-keyring --keyring /etc/apt/trusted.gpg.d/example.gpg --import file.asc

哪個有效。

但是當我使用apt-key list時,它說密鑰不兼容。

查看文件類型,我的example.gpg屬於GPG keybox database version 1類型,而其他 apt 密鑰屬於GPG key public ring類型。

如何讓gpg生成GPG key public ring而不是密鑰keybox

我知道這很舊,但是由於我花了一些時間尋找解決方案,所以我將分享它。

GnuPG 在自動化方面一直很痛苦,而且似乎沒有辦法讓它使用舊的密鑰環 v4 格式。 但是,可以通過重新導出密鑰來完成。 這里以 MariaDB 存儲庫為例,這是一個丑陋的單行代碼:

# cd /etc/apt/trusted.gpg.d/ && wget -q -O - https://mariadb.org/mariadb_release_signing_key.asc | \
  gpg --no-default-keyring --keyring=$(pwd)/mariadb.gpg --batch --import - && \
  gpg --no-default-keyring --keyring=$(pwd)/mariadb.gpg --batch --output $(pwd)/mariadb.gpg~ --export --yes && \
  mv $(pwd)/mariadb.gpg~ $(pwd)/mariadb.gpg; chmod 644 $(pwd)/mariadb.gpg

使用apt-key及其--keyring選項(在 Debian Buster 10.7 上測試)可以更輕松地完成此操作。

$ wget -q -O - https://mariadb.org/mariadb_release_signing_key.asc | \
  sudo apt-key --keyring /etc/apt/trusted.gpg.d/mariadb.gpg add -

如果您查看apt-key腳本,您會發現類似於上面的單行代碼(但可能更健壯)。 請注意,如果您使用后綴.asc而不是.gpg作為受信任的文件, apt-key會報錯並失敗。 這似乎是一個錯誤,可以通過之前對文件的touch來避免。

我最近也偶然發現了這個問題,在深入研究源代碼后,我發現了幾乎完美的解決方案。

您可以只使用前綴指定密鑰環格式,例如gnupg-ring:gnupg-kbx: 在您的情況下,命令將是:

gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/example.gpg --import file.asc

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM