答案1
什么是 GPG?
GPG,或GNU 隐私卫士,是一套加密软件。它可用于加密或签名数据和通信以确保其真实性。
这种加密技术基于密钥对。公钥托管在密钥服务器(例如 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
当你从该存储库安装包时,您还会收到一条警告:
WARNING: The following packages cannot be authenticated!
dropbox
Install these packages without verification [y/N]?
apt
虽然这些警告可以通过使用标志来消除--allow-unauthenticated
,但最好将密钥添加到您的系统中,以便您可以利用增加的安全性。
添加 PPA 时您应该使用该add-apt-repository
工具,因为它会自动为您添加密钥。如果您需要手动添加密钥,请使用以下命令:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys KEY_ID_HERE
如果你不想使用终端,参考这个答案。