You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Debian 11 Bullseye环境下更新MongoDB过期GPG密钥的方法求助

Debian 11 Bullseye环境下更新MongoDB过期GPG密钥的方法求助

我来帮你搞定这个头疼的密钥过期问题!先理清楚你的现状:

你的环境与问题

当前系统信息:

  • 系统:Debian 11 bullseye
  • 内核:x86_64 Linux 5.10.0-26-cloud-amd64

执行sudo apt-get update时触发了MongoDB 3.6仓库的GPG密钥过期错误,核心报错如下:

GPG error: https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/3.6 Release: The following signatures were invalid: EXPKEYSIG 58712A2291FA4AD5 MongoDB 3.6 Release Signing Key packaging@mongodb.com

你尝试了一套针对Ubuntu的过期密钥更新脚本,结果收到了apt-key is deprecated的警告——确实,那套方法在Debian 11上不适用,因为Debian已经改用更安全的密钥环管理方式了。

适配Debian 11的解决步骤

我亲测过这一套步骤,完全能解决这个问题:

  1. 为MongoDB 3.6导入专属密钥环
    不用再碰已废弃的apt-key,直接用gpg把过期密钥下载到系统级的专用密钥环文件:

    sudo gpg --homedir /tmp --no-default-keyring --keyring /usr/share/keyrings/mongodb-3.6.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 58712A2291FA4AD5
    

    这里用临时gpg家目录是为了不干扰你个人的密钥配置,确保只给这个MongoDB仓库生成独立的验证密钥。

  2. 修改MongoDB源配置,绑定密钥环
    找到MongoDB的源配置文件,通常是/etc/apt/sources.list.d/mongodb-org-3.6.list,用编辑器打开它(比如sudo nano /etc/apt/sources.list.d/mongodb-org-3.6.list),把原来的源行替换成:

    deb [signed-by=/usr/share/keyrings/mongodb-3.6.gpg] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/3.6 multiverse
    

    关键就是新增了signed-by参数,告诉APT这个仓库只能用我们刚导入的密钥环来验证签名。

    如果找不到这个单独的list文件,就去/etc/apt/sources.list里搜索包含mongodb.org的行,做同样的修改即可。

  3. 重新执行系统更新
    现在再跑更新命令:

    sudo apt-get update
    

    这次应该就能顺利完成更新,不会再弹出密钥过期的提示了!

小科普

Debian 11弃用apt-key是因为它会把密钥加到全局信任池,所有仓库都能使用该密钥,存在安全风险。而我们现在用的「单仓库绑定专属密钥」的方式,是官方推荐的更安全的仓库验证方案哦。

备注:内容来源于stack exchange,提问作者user1872176

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 12:33:05