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

如何使用debsigs和debsig-verify签名与验证.deb文件?

配置debsigs与debsig-verify实现.deb签名验证的完整流程(基于v0.1.26/1.20.9)

问题

配置debsigs和debsig-verify来签名、验证.deb文件的过程异常繁琐。网上流传最广的一篇旧HOWTO文档,对这两个工具的当前版本(debsigs 0.1.26、debsig-verify 1.20.9)已经完全失效。虽然每个单独问题都能在网上找到零散的解决方案,但始终找不到一套能把所有步骤串起来的完整可行流程。我最终成功完成了配置,所以整理出这套步骤分享给大家。

解决方案

1. 生成签名密钥对

用GPG生成用于签名的密钥对:

gpg --gen-key

按照提示完成密钥生成,务必记下密钥的完整指纹(后续步骤频繁用到)。

2. 配置签名密钥的存放路径

创建debsigs要求的密钥目录结构:

sudo mkdir -p /usr/share/debsig/keyrings/<你的完整密钥指纹>/debian

将你的公钥导出到该目录下:

gpg --export --armor <你的完整密钥指纹> | sudo tee /usr/share/debsig/keyrings/<你的完整密钥指纹>/debian/debsig.gpg

3. 创建验证策略文件

先创建策略文件的存放目录:

sudo mkdir -p /etc/debsig/policies/<你的完整密钥指纹>

在该目录下新建policy.xml文件,内容如下(替换其中的指纹和自定义标识):

<?xml version="1.0"?>
<!DOCTYPE Policy SYSTEM "https://www.debian.org/debsig/1.0/policy.dtd">
<Policy xmlns="https://www.debian.org/debsig/1.0/">
  <Origin Name="你的自定义签名名称" id="<你的完整密钥指纹>"/>
  <Selection>
    <Required Type="origin" File="debsig.gpg" id="<你的完整密钥指纹>"/>
  </Selection>
  <Verification MinOptional="0">
    <Required Type="origin" File="debsig.gpg" id="<你的完整密钥指纹>"/>
  </Verification>
</Policy>

注意:XML格式必须严格符合DTD规范,标签要闭合,属性值不能出错。

4. 对.deb文件进行签名

使用debsigs对目标.deb文件执行签名操作:

debsigs --sign=origin --keyid=<你的完整密钥指纹> <目标deb文件的路径>

5. 验证已签名的.deb文件

用debsig-verify验证签名是否有效:

debsig-verify <已签名的deb文件路径>

验证通过时,会输出类似Successfully verified package from '你的自定义签名名称'的提示;若验证失败,会给出具体的错误原因。

常见问题排查

  • 若验证时提示「找不到密钥」:检查公钥是否正确放置到/usr/share/debsig/keyrings对应的子目录中,确保密钥文件名是debsig.gpg
  • 若策略文件报错:检查XML标签是否闭合,密钥指纹是否完整,属性值是否正确
  • 若签名失败:确认GPG密钥在当前用户的密钥环中,且用户拥有该密钥的签名权限

内容的提问来源于stack exchange,提问作者Avram

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 17:36:14