/etc/dpkg/dpkg.cfg
我正在尝试通过删除no-debsig
此配置文件来启用 GPG 验证:
.# Do not enable debsig-verify by default; since the distribution is not using embedded signatures, debsig-verify would reject all packages.
.# no-debsig
然后我尝试下载并安装一些未签名的 .deb 文件到我的 Ubuntu 服务器,但我可以正常安装它们,无需采取任何措施(拒绝、警告)。
所以我的问题是:假设我从互联网上下载了一个 .deb 文件,然后我运行这个文件来dpkg -i
安装它,如何验证它是否来自可信来源?我正在使用 Ubuntu 服务器 16.04。谢谢!
答案1
简短回答:不支持,dpkg 不支持签名验证。同样不支持,因为在您描述的场景中,这种签名无法很好地衡量可信度。
dpkg 和 apt 都无法决定如果来源是值得信赖的来源作为人类,你的决定某个信息来源是否值得信任是一项艰巨的工作。没有只有善良的互联网精灵才能颁发的神奇可信度标志。(如果有,你怎么知道它不是聪明的伪造品?坏人也可以签署文件)
永远不要将您不信任的来源添加到 apt。Apt 依靠您做出明智的决定。
发行版控制来自上游源的信任链,构建和签名包。这就是明智选择发行版很重要的原因之一。正确的发行版有你需要的软件,所以你不必在互联网上四处游荡(错误地)评估你从每个网站收集的所有软件的可信度
Apt 验证确保您的授权来源的软件包在下载过程中不会被损坏或替换。Apt 会跟踪来源和依赖项。Apt 不会评估可信度。
陣容仅仅安装无论 apt 要求它安装什么,都按照 apt 指定的顺序进行。Dpkg 过去使用 debsigs,这是一种早已废弃的早期签名方法。如今,dpkg 会进行各种检查……但检查的是文件系统、软件包和它自己的功能。
如果你告诉 dpkg 安装一个充满恶意软件的 deb,dpkg 会这样做完全按照你的指示去做。dpkg 就像一台烤面包机 - 你可能误用烤面包机并烧毁你的房子。dpkg 开发人员认为,人类的愚蠢行为 - 绕过人类敏感性、发行版和/或 apt 的保护 - 是人类的问题,而不是 dpkg 错误。
请谨慎考虑添加非 Ubuntu 软件包。它们可能会破坏您的系统。它们是不支持这里。
注意:debsigs 是 dpkg 中内置的一种早期且已废弃已久的签名方法。它们很久以前就被发行版和 apt 取代了。