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

如何在仍验证签名的前提下继续使用过期的GPG密钥(以MongoDB 4.0过期密钥为例)

如何在仍验证签名的前提下继续使用过期的GPG密钥(以MongoDB 4.0过期密钥为例)

嘿,我完全懂你的顾虑——直接关掉签名验证确实太冒险了,咱们肯定还是想靠签名来挡住恶意注入的内容。刚好针对MongoDB 4.0这个过期密钥的场景,有两个靠谱的办法能帮你只忽略密钥过期,同时保留签名验证的安全机制:

方法一:针对特定仓库配置APT忽略密钥过期

这个方法最精准,只会影响MongoDB的源,不会波及系统里的其他仓库。

  1. 打开MongoDB 4.0的源配置文件,一般路径是/etc/apt/sources.list.d/mongodb-org-4.0.list
  2. 把原来的deb行修改成下面这样(注意替换成你对应的Ubuntu版本,比如bionic、xenial等):
    deb [signed-by=/usr/share/keyrings/mongodb-org-4.0.gpg check-valid-until=no] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse
    
    这里的check-valid-until=no就是告诉APT:别管这个密钥过没过期,只要签名是对的就行。

或者你也可以单独创建一个APT配置文件来实现:

  1. 在/etc/apt/apt.conf.d/目录下新建一个文件,比如99-mongodb-ignore-expiry
  2. 写入以下内容:
    Acquire::https::repo.mongodb.org::Check-Valid-Until "false";
    Acquire::https::repo.mongodb.org::Allow-Unauthenticated "false";
    Acquire::https::repo.mongodb.org::Allow-Insecure-Repositories "false";
    
    这样设置后,APT会严格验证签名,但不会检查密钥的过期时间。

方法二:修改GPG密钥的全局信任设置

如果你希望这个密钥在所有场景下都被忽略过期(不止APT),可以修改它的信任级别:

  1. 先找到MongoDB 4.0密钥的ID,运行命令:
    apt-key list | grep MongoDB
    
    输出里会有类似EA312927这样的密钥ID(具体以你的实际输出为准)
  2. 进入GPG密钥编辑模式:
    gpg --edit-key EA312927
    
  3. 在交互界面输入trust,然后选择选项5(I trust ultimately,表示完全信任这个密钥)
  4. 输入save保存设置,退出编辑模式

这个方法会让系统全局忽略该密钥的过期时间,但要注意:只对确定安全、未被泄露的密钥用这个操作,避免引入不必要的风险。

两种方法都能满足你的需求——既保留签名验证来防止恶意内容注入,又绕开了密钥过期的限制。推荐优先用方法一,毕竟更精准,安全性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 16:14:51