为什么我会收到来自 Ubuntu 存储库的软件包的身份验证错误?

Joh*_*ohn 193 package-management apt authentication

我正在试验 VPN,所以我想安装 pptpd。

john@desktop:~$ sudo apt-get install pptpd
[sudo] password for john: 
<snip>
The following extra packages will be installed:
  bcrelay
The following NEW packages will be installed:
  bcrelay pptpd
0 upgraded, 2 newly installed, 0 to remove and 11 not upgraded.
Need to get 90.5 kB of archives.
After this operation, 442 kB of additional disk space will be used.
Do you want to continue [Y/n]? y
Run Code Online (Sandbox Code Playgroud)

一切都运行良好,直到我到达这里:

WARNING: The following packages cannot be authenticated!
  bcrelay pptpd
Install these packages without verification [y/N]? n
E: Some packages could not be authenticated
Run Code Online (Sandbox Code Playgroud)

没有身份验证?我不是安全专家,但我很确定这是一件坏事。所以我检查包裹是从哪里来的

john@desktop:~$ apt-cache policy pptpd
pptpd:
  Installed: (none)
  Candidate: 1.3.4-3ubuntu1
  Version table:
     1.3.4-3ubuntu1 0
        500 http://us.archive.ubuntu.com/ubuntu/ natty/main i386 Packages
john@desktop:~$ apt-cache policy bcrelay
bcrelay:
  Installed: (none)
  Candidate: 1.3.4-3ubuntu1
  Version table:
     1.3.4-3ubuntu1 0
        500 http://us.archive.ubuntu.com/ubuntu/ natty/main i386 Packages
Run Code Online (Sandbox Code Playgroud)

它们来自 Ubuntu.com 并且没有经过正确的身份验证?这里发生了什么?

hhl*_*hlp 236

apt-key 实用程序

apt-key 用于管理 apt 用于验证包的密钥列表。已使用这些密钥验证过的包将被视为受信任的。使用 Ubuntu 归档密钥的密钥环更新本地密钥环,并从密钥环中删除不再有效的归档密钥。

$ sudo apt-key update
$ sudo apt-get update
Run Code Online (Sandbox Code Playgroud)

尝试安装一些东西...

  • 它起作用了,但`apt-key` 说它没有改变任何东西。知道我的问题是什么吗? (15认同)
  • 这可能是由于包服务器端的许多错误引起的。有时运行 `apt-get update` 会修复它。 (5认同)
  • 就我而言,长时间的“aptitude”工作中的 Ctrl+C 导致了问题。`sudo apt-key update` 没有改变任何东西,但是 `sudo apt-get update` 解决了这个问题。 (4认同)
  • 不知道为什么`apt-key update`遇到`以下包无法认证!`问题后不自动运行... (2认同)

Tho*_*ner 18

sudo apt-get update
Run Code Online (Sandbox Code Playgroud)

足以为我修复它。


chr*_*ide 5

我在 Ubuntu 12.10 (Quantal Quetzal) 上遇到了这个问题。如果我尝试使用 Synaptic Package Manager GUI,也会出现同样的问题。

事实证明,我的系统仍然设置为对我不再连接的网络使用代理服务器,因此无法再使用。一旦我禁用了代理服务器,apt就能够正确验证包。

要在 Ubuntu 12.10 (Quantal Quetzal) 上禁用代理,请执行以下步骤:

  1. 按键盘上的Super按钮(也称为 Windows 徽标按钮)
  2. 键入网络,然后按回车
  3. 选择网络代理
  4. 将方法更改为
  5. 单击应用系统范围
  6. apt 现在应该能够验证包