Lui*_*ado 12 launchpad apt repository gnupg
看着像THIS、THIS和THIS这样的问题,我向公众询问以下问题:
GPG 签名有什么用?
签名为用户添加或提供了什么额外的安全级别?
与 Launchpad 中带有 PPA 的 GPG 签名相关的一些常见问题是什么?为什么会产生这些问题?
and*_*ing 11
GPG 或GNU Privacy Guard是一套加密软件。它可用于加密或签署数据和通信以确保其真实性。
这种类型的密码学基于密钥对。公钥托管在密钥服务器(例如 keyserver.ubuntu.com)上,私钥保密。使用公钥,可以验证私钥所做的签名。同样,知道某人的公钥将允许您加密只能由相应密钥持有者读取的消息。
进一步阅读:日常使用的 GnuPG(一个迷你的操作方法...)
在这种情况下,您从中下载软件包的 apt 存储库应由密钥签名,以便您可以验证您正在安装的软件包是否来自它们所说的位置。
存储库中已签名的实际文件是该Release文件。此文件包含存储库中许多其他文件的校验和。例如,这里是官方 Ubuntu 12.10 存储库的文件及其对应的 GPG 签名。安装包时,apt验证签名。
进一步阅读:关于安全 apt
您的计算机已经知道官方 Ubuntu 存档的公钥,但是如果您想添加 PPA 或第三方存储库,则必须导入它们的密钥。如果您尝试更新您没有密钥的存储库,您将看到如下警告:
W: GPG error: http://ppa.launchpad.net oneiric Release: The following signatures
couldn't be verified because the public key is not available: NO_PUBKEY B725097B3ACC3965
Run Code Online (Sandbox Code Playgroud)
当您从该存储库安装软件包时,您还会收到警告:
WARNING: The following packages cannot be authenticated!
dropbox
Install these packages without verification [y/N]?
Run Code Online (Sandbox Code Playgroud)
虽然这些警告可通过运行沉默apt与--allow-unauthenticated标志,但它是最好的键添加到您的系统,使您可以增加安全性的优势。
添加 PPA 时,您应该使用该add-apt-repository工具,因为它会自动为您添加密钥。如果您需要手动添加密钥,请使用以下命令:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys KEY_ID_HERE
Run Code Online (Sandbox Code Playgroud)
如果您不想使用终端来执行此操作,请参阅此答案。