zoukankan      html  css  js  c++  java
  • 树莓派 Learning 002 装机后的必要操作 --- 04 添加软件源 之 添加公钥 --- 解决“由于没有公钥,无法验证下列签名”问题

    树莓派 装机后的必要操作 — 添加软件源 解决 添加公钥 时会遇到的问题

    当你添加完Debian的软件源后,在终端中执行sudo apt-get update时,会出现下面的错误:(这里我添加了3个软件源的网站,所以出现了3个相同的问题。)

    W: GPG 错误:http://security.debian.org jessie/updates InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY 9D6D8F6BC857C906 NO_PUBKEY 8B48AD6246925553
    W: GPG 错误:http://ftp.debian.org jessie-updates InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY 8B48AD6246925553 NO_PUBKEY 7638D0442B90D010
    W: GPG 错误:http://ftp.debian.org jessie Release: 由于没有公钥,无法验证下列签名: NO_PUBKEY 8B48AD6246925553 NO_PUBKEY 7638D0442B90D010 NO_PUBKEY CBF8D6FD518E17E1

    这个错误的意思就是说:你刚刚添加的软件源,因为你没有添加公钥,所以添加的软件源不能使用,你需要你添加的每一个软件源网站添加错误中提示的指定的公钥

    解决办法:添加公钥

    添加公钥的命令格式为:(其中:Pubkey_After_8 就是公钥的后8位。)

    gpg --keyserver pgpkeys.mit.edu --recv-keys Pubkey_After_8
    gpg --export --armor Pubkey_After_8 | sudo apt-key add -
    $ gpg --keyserver pgpkeys.mit.edu --recv-keys C857C906
    gpg: 下载密钥‘C857C906’,从 hkp 服务器 pgpkeys.mit.edu
    gpg: /home/pi/.gnupg/trustdb.gpg:建立了信任度数据库
    gpg: 密钥 C857C906:公钥“Debian Archive Automatic Signing Key (7.0/wheezy) <ftpmaster@debian.org>”已导入
    gpg: 没有找到任何绝对信任的密钥
    gpg: 合计被处理的数量:1
    gpg:           已导入:1  (RSA: 1)
    $ gpg --export --armor C857C906 | sudo apt-key add -
    OK

    现在一个软件源的公钥添加完成了。现在你再在当前终端中执行sudo apt-get update验证一下,输出下面的信息:

    W: 以下 ID 的密钥没有可用的公钥:
    8B48AD6246925553
    W: GPG 错误:http://ftp.debian.org jessie-updates InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY 8B48AD6246925553 NO_PUBKEY 7638D0442B90D010
    W: GPG 错误:http://ftp.debian.org jessie Release: 由于没有公钥,无法验证下列签名: NO_PUBKEY 8B48AD6246925553 NO_PUBKEY 7638D0442B90D010 NO_PUBKEY CBF8D6FD518E17E1

    一个W: GPG 错误问题里面有两个或者三个公钥等待被添加。你看,已经解决了添加了一个公钥。
    同样的道理,解决剩下的3个公钥:(上面错误提示中的6个公钥,是重复的。)

    $ gpg --keyserver pgpkeys.mit.edu --recv-keys 46925553
    gpg: 下载密钥‘46925553’,从 hkp 服务器 pgpkeys.mit.edu
    gpg: /home/pi/.gnupg/trustdb.gpg:建立了信任度数据库
    gpg: 密钥 46925553:公钥“Debian Archive Automatic Signing Key (7.0/wheezy) <ftpmaster@debian.org>”已导入
    gpg: 没有找到任何绝对信任的密钥
    gpg: 合计被处理的数量:1
    gpg:           已导入:1  (RSA: 1)
    $ gpg --export --armor 46925553 | sudo apt-key add -
    OK
    $ gpg --keyserver pgpkeys.mit.edu --recv-keys 2B90D010
    gpg: 下载密钥‘2B90D010’,从 hkp 服务器 pgpkeys.mit.edu
    gpg: /home/pi/.gnupg/trustdb.gpg:建立了信任度数据库
    gpg: 密钥 2B90D010:公钥“Debian Archive Automatic Signing Key (7.0/wheezy) <ftpmaster@debian.org>”已导入
    gpg: 没有找到任何绝对信任的密钥
    gpg: 合计被处理的数量:1
    gpg:           已导入:1  (RSA: 1)
    $ gpg --export --armor 2B90D010 | sudo apt-key add -
    OK
    $ gpg --keyserver pgpkeys.mit.edu --recv-keys 518E17E1
    gpg: 下载密钥‘518E17E1’,从 hkp 服务器 pgpkeys.mit.edu
    gpg: /home/pi/.gnupg/trustdb.gpg:建立了信任度数据库
    gpg: 密钥 2B90D010:公钥“Debian Archive Automatic Signing Key (7.0/wheezy) <ftpmaster@debian.org>”已导入
    gpg: 没有找到任何绝对信任的密钥
    gpg: 合计被处理的数量:1
    gpg:           已导入:1  (RSA: 1)
    $ gpg --export --armor 518E17E1 | sudo apt-key add -
    OK

    现在所有需要添加的公钥都添加完成了。现在你再在当前终端中执行sudo apt-get update验证一下,不会再出现W: GPG 错误或者W: 以下 ID 的密钥没有可用的公钥这样的错误了。

    你可能在添加公钥时会遇到的问题:
    1. gpgkeys: key C857C906 can't be retrieved

    pi@raspberrypi:~ $ gpg --keyserver keyring.debian.org --recv C857C906
    gpg: 下载密钥‘C857C906’,从 hkp 服务器 keyring.debian.org
    gpgkeys: key C857C906 can't be retrieved
    gpg: 找不到有效的 OpenPGP 数据。
    gpg: 合计被处理的数量:0

    当我将--keyserver这个参数,也就是公钥服务器网站,设置为keyring.debian.org或者wwwkey.eu.pgp.net或者wwwkey.eu.pgp.net时,提示我:gpgkeys: key C857C906 can't be retrieved
    解决办法就是:更换其他可以使用的公钥服务器网站。(比如:pgpkeys.mit.edu
    2. gpg: 未改变:1
    如果你执行两次gpg --keyserver pgpkeys.mit.edu --recv-keys Pubkey_After_8命令,第二次得到的信息就是下面这个格式的:

    $ gpg --keyserver pgpkeys.mit.edu --recv-keys Pubkey_After_8
    gpg: 下载密钥‘Pubkey_After_8’,从 hkp 服务器 pgpkeys.mit.edu
    gpg: 密钥 Pubkey_After_8:“Debian Archive Automatic Signing Key (8/jessie) <ftpmaster@debian.org>”未改变
    gpg: 合计被处理的数量:1
    gpg:           未改变:1

    出现gpg: 未改变:1这样的提示,就是说明:这个你添加的公钥,之前你已经添加过一次了。出现这个的提示,你不用担心。


    参考网站:
    使用apt-get update出现”没有公钥,无法验证下列签名”的解决办法
    http://my.oschina.net/aiguozhe/blog/38449
    Debian更新源时出现签名无法进行验证(GPG error)
    http://www.freeoa.net/osuport/botinstal/debian-apt-gpg-error_1642.html

  • 相关阅读:
    Django~1
    Codeforces Round#201(div1) D. Lucky Common Subsequence
    ACdream原创群赛(18)のAK's dream题解
    区间dp
    部署AlwaysOn第三步:集群资源组的健康检测和故障转移
    Join 和 App
    SSRS配置1:凭证和邮件
    巧用Alt 键
    把Excel的数据导入到数据库
    jvm系列:Java GC 分析
  • 原文地址:https://www.cnblogs.com/aobosir/p/5928627.html
Copyright © 2011-2022 走看看