continuous-integration - 作为持续构建的一部分,使用 gpg 对 RPM 进行签名 - 如何避免提示输入密码?

标签 continuous-integration build-automation signing gnupg

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

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

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

最佳答案

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

关于continuous-integration - 作为持续构建的一部分,使用 gpg 对 RPM 进行签名 - 如何避免提示输入密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3908007/

相关文章:

java - 没有用户界面的 Hudson 项目

command-line - 哪种与 SourceSafe 交互的方式更快?命令行还是对象模型?

.net - 是否有基于动态语言的 .NET 构建工具?

java - 将签名 key 的证书导出到 Android Studio 中的 .pem 扩展名

merge - 在 TeamCity 中基于拉取请求合并运行 CI 构建

git - TeamCity 无法在通配符指定的分支上触发

c# - 如何在 C# 中使用 key 大小小于内置最小 256 位的 ECDSA

macos - 3rd 方 Mac 开发人员安装程序?上传时出错

svn - 使用提交后 Hook 触发 Cruise Control.net 构建

node.js - Docker 和基于 grunt 的工作流自动化