6

我有一个持续集成构建系统,它通过 cron 触发的 shell 脚本生成 RPM。我想用 gpg 对 RPM 进行签名,但 gpg 坚持要求用户在控制台手动输入密码,这显然是一个非初学者,因为没有用于 cron 的用户控制台。

我已经阅读了有关 gpg-agent 的信息,它可以让您为当前的登录会话输入一次密码,但是 cron 再次没有登录会话。我想要的是能够将 gpg-agent 配置为在启动时接受一次密码,并在需要时将其交给 cron 会话。我不知道这是否可能,并且 gpg-agent 的文档相当少。

另一种方法是在 gpg 要求时使用 expect 来输入密码,但显然这是一个很大的安全漏洞,因为密码需要包含在构建脚本中。

4

2 回答 2

6

您应该在启动时启动 gpg-agent 并保存 GPG_AGENT_INFO 环境变量。然后你可以在你的脚本环境中设置它并且应该按预期工作。此外,确保 GPG_AGENT_INFO 中套接字的权限允许您的脚本读取它。

于 2010-10-11T16:20:58.263 回答
-1

无论您使用什么构建工具来生成 RPM,都可以对其进行签名。例如,gradle 有一个为你签名的插件。您必须使用密钥环文件的 id、密码和位置创建一个属性文件,其余的由它完成。

请参阅: https ://docs.gradle.org/current/userguide/signing_plugin.html

于 2016-01-29T15:03:14.463 回答