美文网首页
解决树莓派软件源更新时公钥问题

解决树莓派软件源更新时公钥问题

作者: duyi324 | 来源:发表于2018-01-10 22:40 被阅读0次

    标签: 树莓派 软件源 公钥


    【参考链接】
    如何更新Debian源和导入公钥
    Ubuntu的软件源更新常见问题及解决

    【问题说明】

    在另一篇文章(树莓派安装KodExplorer变身私人云桌面)中,为了安装PHP7.0(通过软件仓库安装而不是编译安装),需要编辑文件sudo vim /etc/apt/sources.list,添加软件源:

    deb http://mirrordirector.raspbian.org/raspbian/ stretch main contrib non-free rpi
    

    结果添加了软件源之后进行sudo apt-get update的时候报错,错误信息大致如下:

    W: GPG error: http://mirrordirector.raspbian.org/raspbian stretch InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 9165938D90FDDD2E
    W: The repository 'http://mirrordirector.raspbian.org/raspbian stretch InRelease' is not signed.
    N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.
    N: See apt-secure(8) manpage for repository creation and user configuration details.
    W: There is no public key available for the following key IDs:
    9165938D90FDDD2E
    E: Failed to fetch http://mirrordirector.raspbian.org/raspbian/dists/stretch/main/binary-armhf/Packages.xz Hash Sum mismatch
    E: Some index files failed to download. They have been ignored, or old ones used instead.

    错误信息大致意思为没有找到对应的公钥,所以软件源地址不被信任。

    【解决方案】

    解决方案就是导入对应仓库的公钥,命令格式为:

    gpg --keyserver <KeyServer> --recv <公钥签名> gpg --export --armor <公钥签名> | sudo apt-key add 
    

    也可以用如下格式:

    apt-key adv --keyserver <KeyServer> --recv-keys <公钥签名>
    gpg --export --armor 40976EAF437D05B5 | sudo apt-key add -
    

    其中:
    <KeyServer>,key服务器,可以填 keyserver.ubuntu.com ,当然也可以填其他的。
    在本例中,按照上面的格式,执行:

    gpg --keyserver  keyserver.ubuntu.com --recv-keys 9165938D90FDDD2E
    gpg --export --armor  9165938D90FDDD2E | sudo apt-key add -
    

    然后再执行sudo apt-get update即可解决问题。

    相关文章

      网友评论

          本文标题:解决树莓派软件源更新时公钥问题

          本文链接:https://www.haomeiwen.com/subject/wiuanxtx.html