这个问题自从我升级Mint21已经碰到过很多次了,原因大概就是apt-key这个命令马上要废弃了(按照惯例也很可能为了兼容一直都不砍掉),以后应该使用trusted.gpg.d 来管理密钥文件,也就是说:现在我们必须自己将密钥文件添加到/etc/apt/trusted.gpg.d/ 文件夹中

如何解决?

以OpenShot为例:
当你打开OpenShot官网试图安装每日构建版本,官方要求你添加PPA并更新存储库缓存,但是你将发现标题里的提示:

xfox@xfox-ThinkPad-E14-Gen-3:~$ sudo add-apt-repository ppa:openshot.developers/libopenshot-daily
[sudo] password for xfox:           
您将添加以下PPA:
 This PPA contains the most recent source code from libopenshot (OpenShot Video Library). These packages are only intended for testers of OpenShot 2.0, as the source code can be highly unstable during active development of libopenshot.

If you are looking for daily builds of OpenShot 1.x, please go here: https://code.launchpad.net/~openshot.developers/+archive/daily
 更多信息: https://launchpad.net/~openshot.developers/+archive/ubuntu/libopenshot-daily
按Enter继续,按Ctrl+C取消

Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).

Executing: /tmp/apt-key-gpghome.kiOrWySk0O/gpg.1.sh --keyserver hkps://keyserver.ubuntu.com:443 --recv-keys FBA0C227099A5360635E3D9152165BD6B9BA26FA
gpg: key 52165BD6B9BA26FA: public key "Launchpad OpenShot Development PPA" imported
gpg: Total number processed: 1
gpg:  

         imported: 1

根据终端输出,现在你知道了Launchpad OpenShot Development PPA的公钥指纹是:FBA0C227099A5360635E3D9152165BD6B9BA26FA
那么,现在使用GnuPG把这个指纹对应的二进制密钥文件丢进它应该去的位置:

你只需要输入密钥指纹的后八位就可以让你的设备识别这个密钥,但是,apt不识别ascii-armored格式的密钥,所以你应该先把它转换成apt支持的二进制格式。
sudo apt-key export B9BA26FA | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/openshot.gpg

值得注意的是,如果你是个没有独立思考能力只会照抄的CSD*的**,请不要把我这里的密钥指纹以及对证书文件的命名粘贴到你的计算机上。如果你这么干了,就别留言问我为什么还报错。

补充说明

如果软件包官方直接提供了二进制公钥文件,你可以直接将公钥丢进/etc/apt/trusted.gpg.d里,当然记得确保他们是二进制格式而不是常见的ASCII Armor格式。
你可以使用如下命令完成

gpg --import $KEY.asc
gpg --export $KEY_FINGERPRINT > $KEY.gpg

gpg [options] --dearmor [file]

使用-o 参数输出到目标路径的文件即可。

参考文章:

OpenPGP 密钥处理
Warning: apt-key is deprecated (SOLVED)
apt-key(8)
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead

标签: none

添加新评论