如何检查是否有与 deb 包关联的签名?

Sou*_*jee 4 security dpkg signature deb

在基于 rpm 的系统中,我们可以轻松查看是否存在与 rpm 文件相关联的签名:

rpm -qpi <rpm-file.rpm> | grep -i signature
Run Code Online (Sandbox Code Playgroud)

对于 .deb 文件,我们可以看到包信息,但不包括签名是否关联的信息:

dpkg-deb -I uma-18feb-latest.deb
Run Code Online (Sandbox Code Playgroud)

在 Ubuntu 中有没有办法在不使用以下实际验证签名的命令的情况下查看签名?

dpkg-sig --verify <deb-file.deb>
Run Code Online (Sandbox Code Playgroud)

Ste*_*itt 6

dpkg-sig --list <deb-file.deb>
Run Code Online (Sandbox Code Playgroud)

将列出文件中看起来像签名的所有项目,而不验证文件。这将列出文件中任何签名的作用;例如

$ dpkg-sig -l vuescan_9.7.50-1_amd64.deb
Processing vuescan_9.7.50-1_amd64.deb...
builder
$ dpkg-sig -l zstd_1.4.8+dfsg-2.1_i386.deb
Processing zstd_1.4.8+dfsg-2.1_i386.deb...
$
Run Code Online (Sandbox Code Playgroud)

第一个文件具有“builder”角色的签名;第二个文件没有签名。

请注意,对单个.deb文件进行签名是不寻常的(与 RPM 不同)。Debian 软件包的真实性依赖于存储库的真实性;请参阅如何保证 Debian 软件包的真实性?