[英]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.