1

我正在编写一个使用 cmake 的库。我已经设置了构建以添加一个make构建 Debian 源包的目标,然后我可以将其上传到 Launchpaddput以创建一个 Ubuntu PPA。此过程的一部分是使用我的gpg密钥对包进行签名。当我make在登录到正常的 X 会话时运行此目标时,它会弹出一个框,要求我输入gpg密码。

我想让 Jenkins 自动执行此操作以上传每日快照构建。问题是如何让 Jenkins 自动签署包。我见过类似的问题,但他们从未真正回答过我正在寻找的内容。

我想我需要跑来gpg-agent处理这个问题,但这里有一些我不明白的事情:

1.) Jenkins 在jenkins用户下运行。我如何gpg-agent为这个用户运行。我已经看到eval $(gpg-agent --daemon)可以将其放入 shell 脚本启动文件中,但不会由 Jenkins 获取。

2.) 我如何gpg-agent知道我的密码。如果我登录到jenkins用户,sudo su - jenkins我可以gpg用来解密文件,但它会弹出pinentry-curses并询问我的密码。詹金斯将如何处理。我想输入一次密码并记住它。

4

1 回答 1

0

1)你可以使用绝对路径gpg-agent吗?也许我没有让你正确..

2)您应该--passphrase-fd 0用作 gpg 的参数(例如:)echo password | gpg --passphrase-fd 0 --decrypt / --encrypt。更多信息在这里

于 2012-11-23T13:57:06.943 回答