我有一个连续的集成构建系统,该系统通过由Cron触发的Shell脚本生成RPM。我想与GPG签名RPM,但是GPG坚持使用手动输入控制台的用户,这显然是不开始的,因为没有CRON的用户控制台。

我已经阅读了有关GPG代理的信息,该代理将使您在当前登录会话中输入一次密码,但CRON又没有登录会话。我希望能够配置GPG代理以在启动时间接受一次密码,并在需要时将其交给Cron会话。我不知道这是否可能,而GPG代理的文档相当最小。

替代方案是使用GPG要求时使用期望进入密码,但是显然这是一个很大的安全孔,因为密码将需要包含在构建脚本中。

有帮助吗?

解决方案

您应该在启动时启动GPG代理,并保存GPG_AGENT_INFO环境变量。然后,您可以在脚本的环境中进行设置,并应按预期工作。此外,请确保GPG_AGENT_INFO中套接字的权限允许您的脚本阅读。

其他提示

您使用的任何构建工具生成RPM都可以具有签名的能力。例如,Gradle有一个为您完成签名的插件。您必须使用ID,密码和密钥环文件的位置创建一个属性文件,然后将其完成。

看: https://docs.gradle.org/current/userguide/signing_plugin.html

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top