我正在使用dpkg-buildpackage,并希望完全自动化我的脚本,但我找不到如何GPG签名软件包并自动输入密码短语到我的持续集成系统中。我不想使用“-us -uc”参数,因为我确实想要对它们进行签名。
有什么建议吗?
有什么建议吗?
use-agent
dpkg-buildpackage -p'gpg --no-tty --passphrase <passphrase>'
或者
dpkg-buildpackage -p'gpg --no-tty --passphrase-file <passphrase file>'
编辑:
警告:严重的安全风险!
任何能够访问此类脚本的人都可以冒充您分发恶意软件。
gpg --batch --passphrase-fd ...
首先停止现有的代理
gpgconf --kill gpg-agent
然后启动一个新的实例,并允许注入密码;此外,我们可以增加这里的存活时间
gpg-agent --default-cache-ttl 3600 --max-cache-ttl 86400 --allow-preset-passphrase --daemon
注入您的签名子密钥的密码 — 当运行此命令时,您将被提示输入密码。
/usr/lib/gnupg/gpg-preset-passphrase --preset <keygrip>
gpg --with-keygrip --list-secret-key <YourUserID>
ssb
和[S]
或[SA]
。
提示
有时候你需要执行export GPG_TTY=$(tty)
让pinentry
正常工作。gpg-agent [..更多选项..] --daemon /bin/bash
这样,当子Shell退出时,代理也会退出,并且在子Shell中设置的任何密码都会被清除。debsign
进行签名,以确保该账户在构建过程和脚本中的安全性。
debsign
来解决问题,参见这个答案。 - Raffi