在本地仓库中获取“发布:以下签名无效”

在本地仓库中获取“发布:以下签名无效”

我们刚刚安装了 Ubuntu 18.04 Server VM,以查看我们的 Chef 配置是否可以在这个新发行版上运行。

在单独的虚拟机上,我们有此版本的本地 apt 镜像:

# tree
.
├── extra
│   ├── binary-amd64
│   │   ├── Packages
│   │   └── Packages.gz
│   └── binary-i386
│       ├── Packages
│       └── Packages.gz
├── Release
└── Release.gpg

3 directories, 6 files

我们Release使用以下命令对文件进行了签名:

/usr/bin/gpg -abs -o Release.gpg Release

经过上述操作后,签名似乎没问题:

# LANG=C gpg --verify /var/www/html/ubuntu-local/dists/bionic/Release.gpg /var/www/html/ubuntu-local/dists/bionic/Release
gpg: Signature made mar 29 may 2018 13:03:12 WEST using RSA key ID 271AFAF4
gpg: Good signature from "... <...@...>"

在客户端,我们导入了271AFAF4密钥:

# LANG=C apt-key list
/etc/apt/trusted.gpg
--------------------
pub   rsa2048 2014-10-27 [SC]
      0F11 1A77 EE05 C406 2691  FC74 1794 5F7F 271A FAF4
uid           [ unknown] ... <...@...>

客户端的repo定义文件是:

deb      "http://localrepo/ubuntu-local" bionic extra

然而,每次运行时apt-get update我都会得到:

W: GPG error: http://localrepo/ubuntu-local bionic Release: The following signatures were invalid: 0F111A77EE05C4062691FC7417945F7F271AFAF4
E: The repository 'http://localrepo/ubuntu-local bionic Release' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

但是,如上所示,签名是正确的。顺便提一下,同样的配置也起作用了xenial(在 repo 配置文件中替换bionic) ,我也尝试在 VM上xenial添加repo ,结果相同。xenialbionic

我见过其他答案,但这似乎不是它们的重复。

我错过了什么?

答案1

尝试使用这个 -

/usr/bin/gpg -bs -o Release.gpg Release

而不是这样 -

/usr/bin/gpg -abs -o Release.gpg Release

注意“-a”的区别。

来自 gpg 手册页 -

-a --armor
创建 ASCII 装甲输出。默认为创建二进制 OpenPGP 格式。

根据-

...我们避免使用 ASCII 装甲文件的原因是它们不能被 SecureApt 直接使用。


笔记:

如果上述方法不起作用,作为上述方法的附加步骤,尝试将这两行添加到~/.gnupg/gpg.conf文件 -

cert-digest-algo SHA256
digest-algo SHA256

相关内容