如果我只有他们的密钥 ID,该如何使用第三方密钥正确设置第三方存储库而不将其添加到全局 GPG 密钥环?

如果我只有他们的密钥 ID,该如何使用第三方密钥正确设置第三方存储库而不将其添加到全局 GPG 密钥环?

我有一个第三方软件,它是从其自己的存储库安装的,需要配置自定义密钥。除了将其密钥添加到全局密钥环之外,我如何正确设置密钥以仅用于该存储库?

典型的错误信息如下:

由于公钥不可用,无法验证以下签名:NO_PUBKEY D208507CA14F4FCA

答案1

可以keyserver.ubuntu.com用来检索密钥,但在继续之前您必须手动确认密钥正确:

在此处输入图片描述

sudo -H gpg --keyserver keyserver.ubuntu.com --recv-keys D208507CA14F4FCA

此命令将密钥放入全局密钥环中,并作为导出密钥的中间步骤。密钥将在后续步骤中被删除。

-H需要处理sudo与 HOME 目录有关的权限问题

接下来是导出密钥环的一系列命令

sudo -H gpg --export --output erlang.gpg D208507CA14F4FCA
mkdir -p /usr/local/share/keyrings
mv ./erlang.gpg /usr/local/share/keyrings/

然后从钥匙圈上取下钥匙

sudo -H gpg --batch --yes --delete-key D208507CA14F4FCA

创建一个子目录并向sources.list其中添加新配置:

mkdir -p /etc/apt/sources.list.d
echo "deb [signed-by=/usr/local/share/keyrings/erlang.gpg] https://packages.erlang-solutions.com/ubuntu $(lsb_release -s -c) contrib" > /etc/apt/sources.list.d/erlang.list

注意add-apt-repository 目前不支持该[signed-by]选项

此过程仅为该存储库设置密钥,限制了受损的第三方密钥影响不相关存储库的风险。

相关内容