我正在运行 Debian 10。很长一段时间以来,我在更新存储库时遇到以下错误:
$ sudo apt update
Hit:1 http://security.debian.org buster/updates InRelease
Hit:2 http://deb.debian.org/debian buster InRelease
Hit:3 http://deb.debian.org/debian buster-updates InRelease
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.
W: http://security.debian.org/dists/buster/updates/InRelease: The key(s) in the keyring /etc/apt/trusted.gpg are ignored as the file has an unsupported filetype.
W: http://deb.debian.org/debian/dists/buster/InRelease: The key(s) in the keyring /etc/apt/trusted.gpg are ignored as the file has an unsupported filetype.
W: http://deb.debian.org/debian/dists/buster-updates/InRelease: The key(s) in the keyring /etc/apt/trusted.gpg are ignored as the file has an unsupported filetype.
我如何阅读有关密钥的警告?
这里的内容是/etc/apt/sources.list
如果需要更多信息,请在评论中询问。
答案1
如果您在 中遇到此错误docker
,问题在于较新的操作系统使用 docker 未正确传递的系统调用,这会导致像上面这样令人困惑的错误消息。
在这种情况下,迄今为止最简单的解决方案就是更新docker
.
答案2
您还报告了此命令输出:
$ sudo apt-key --keyring /etc/apt/trusted.gpg list
/etc/apt/trusted.gpg
--------------------
pub rsa2048 2016-07-13 [SC]
6781 84F1 20A8 7A47 5F65 6972 6C0D AC72 8B29 D817
uid [ unknown] OpenFOAM Foundation <[email protected]>
sub rsa2048 2016-07-13 [E]
pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid [ unknown] Docker Release (CE deb) <[email protected]>
sub rsa4096 2017-02-22 [S]
并且该文件的类型不正确:
# file /etc/apt/trusted.gpg
/etc/apt/trusted.gpg: GPG keybox database version 1, created-at Thu Apr 4 13:19:16 2019, last-maintained Thu Apr 4 13:19:16 2019
而不是key public ring (v4)
应有的样子。
结论是该文件由于某种原因已损坏。
很可能是因为当您手动安装 Docker 或 OpenFOAM(上面报告的密钥)时某些命令失败。
解决方案很简单:
- 删除文件(好吧,将其移动到其他地方进行备份)
- 重新添加值得信赖的键
您报告的docker密钥:9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
可以通过以下方式重新添加到可信密钥数据库:
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
请务必重新检查调号。
但另一个关键指纹:6781 84F1 20A8 7A47 5F65 6972 6C0D AC72 8B29 D817
没有出现在互联网上的任何地方,我不会信任这样的密钥。
不要尝试重新安装它。
如果需要,请找到在 Debian 中安装 OpenFOAM 的正确指南。
祝你好运。
注意:盲目安装密钥(任何密钥)都是一个非常糟糕的主意,这是验证系统中安装的内容的方式。如果要验证的密钥来自不受信任的来源,则所有已安装的软件包(以及整个系统)将不再受信任。你被警告了 !!。
添加:
OpenFOAM 在 Debian 中有一个软件包,无需手动安装任何外部密钥。这提高了警告级别。
您还记得安装该密钥吗?如果没有,请重新安装您的 Debian。
答案3
我通过运行以下命令解决了这个问题:
curl -s https://download.docker.com/linux/debian/gpg | gpg --dearmor > /usr/share/keyrings/docker.gpg
这会将密钥插入到 trust.gpg