【问题标题】:How to integrate remote signing in Debian packaging workflow?如何在 Debian 打包工作流程中集成远程签名?
【发布时间】:2015-08-07 09:19:11
【问题描述】:

我的 GPG 密钥位于我的本地盒子 (A) 上。我还可以访问一些用于构建 Debian 和 Ubuntu 软件包的共享主机(B1、B2 等)。我不想把我的 GPG 密钥放在那里。

我想在 B1、B2 等上创建签名的 Debian/Ubuntu 软件包。签署这些软件包通常是现有脚本的一部分,例如 dpkg-buildpackagebackportpackage。虽然他们经常提出不对包或文件进行签名,但将签名作为流程的一部分具有不会破坏工作流程并且不会跳过任何步骤的优势。

因此,当 B1、B2 等上的打包脚本请求时,我需要从我的本地框 A 对文件进行签名,例如通过sshfs。我的愚蠢想法是将$DEBSIGN_PROGRAM 设置为将其参数打印到控制台然后等待RET 的脚本。然后我会传输/sshfs引用的文件,在我的本地机器上执行修改后的命令行并将修改/添加的文件传输回远程主机。

然而,我逐渐发现,对于每个问题,Debian 通常都有一个预先存在的解决方案。对于这种类型的工作流程,是否存在 GPG 密钥不驻留在构建包的主机上的工作流程?

【问题讨论】:

  • 我不确定您是否必须找到一个复杂的解决方案。无论如何,您必须信任您正在构建的机器。如果您不信任它,请不要使用它来构建您正在分发的软件。此外,使用子项。如果您意识到给定机器存在/可能存在问题,请撤销它并创建一个新机器。处理多个签名子密钥根本不是问题。
  • @JensErat:如果有人要操纵我正在构建的软件包,最坏的情况是他可以操纵我错误签名的那些(少数)。如果我丢了钥匙,他可以签署一切。不过,我会考虑签署子密钥。

标签: ubuntu debian packaging gnupg


【解决方案1】:

请查看“dpkg-sig”包。您将它安装在本地和远程计算机上,然后只需将路径传递给应签名的 .changes 文件。手册页给出了一个例子:http://manpages.ubuntu.com/manpages/trusty/man1/dpkg-sig.1.html

【讨论】:

    猜你喜欢
    • 2023-02-15
    • 2016-11-08
    • 1970-01-01
    • 2013-08-20
    • 1970-01-01
    • 2023-04-10
    • 2017-09-09
    • 2017-04-16
    • 2012-06-15
    相关资源
    最近更新 更多