什么是GPG签名

看看这个 , 这个和这个问题我要求公众知道以下问题:

  1. 什么是GPG签名?

  2. 签名添加或提供给用户的附加安全级别是多少?

  3. 在Launchpad中使用PPA与GPG签名相关的常见问题是什么?为什么会产生这些问题?

什么是GPG?

GPG或GNU Privacy Guard是一套加密软件。 它可用于加密或签署数据和通信,以确保其真实性。

这种类型的加密基于密钥对。 公钥存在于密钥服务器(例如keyserver.ubuntu.com)上,私钥保密。 使用公钥,可以validation私钥所做的签名。 同样,知道某人的公钥将允许您加密只能由相应密钥的持有者读取的消息。

进一步阅读: GnuPG日常使用(迷你操作……)

这和我有什么关系?

在此上下文中,您正在下载软件包的apt存储库应使用密钥进行签名,以便您可以validation要安装的软件包是否来自他们所说的位置。

签名的存储库中的实际文件是Release文件。 此文件包含存储库中许多其他文件的校验和。 例如, 这里是官方Ubuntu 12.10存储库的文件及其相应的GPG签名 。 安装程序包时, aptvalidation签名。

进一步阅读: 所有关于安全的

常见问题

您的计算机已经知道官方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]? 

虽然可以通过使用--allow-unauthenticated标志运行apt来使这些警告静音,但最好将密钥添加到系统中,以便您可以利用增加的安全性。

添加PPA时,您应该使用add-apt-repository工具,因为这将自动处理为您添加密钥。 如果需要手动添加密钥,请使用以下命令:

 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys KEY_ID_HERE 

如果您不想使用终端进行此操作 , 请参阅此答案 。