rhel7 yum 存储库元数据 GPG 签名

rhel7 yum 存储库元数据 GPG 签名

我正在尝试使用 GPG 签署 yum repo 元数据,这是 Jenkins 作业的一部分。事实证明,这比我最初想象的要困难,但我确信很多人肯定已经这样做了。

我已经弄清楚了,我可以使用以下方法在终端上完成此操作:-

gpg --detach-sign --armor --local-user "Our Team" repomd.xml

但是这会弹出一个 curses 样式的窗口,要求输入密钥,我想将其作为 Jenkins 作业的一部分自动执行。我使用 expect 来签署实际的 RPM,效果很好,但我认为我无法使用此 gpg / curses 方法做到这一点。有没有办法告诉 gpg 只接受来自键盘的输入,而不是弹出文本输入框?(我一直在阅读手册页,但它真的很庞大,我陷入了困境)。

会继续尝试,但希望有人已经解决了这个问题?

答案1

手册页为您提供了传递密码的几个选项:

       --passphrase-fd n
              Read  the passphrase from file descriptor n. Only the first line
              will be read from file descriptor n. If you use  0  for  n,  the
              passphrase  will  be  read  from STDIN. This can only be used if
              only one passphrase is supplied.

       --passphrase-file file
              Read the passphrase from file file. Only the first line will  be
              read  from  file  file.  This  can  only  be  used  if  only one
              passphrase is supplied. Obviously, a passphrase stored in a file
              is  of  questionable security if other users can read this file.
              Don't use this option if you can avoid it.

       --passphrase string
              Use string as the passphrase. This can only be used if only  one
              passphrase  is supplied. Obviously, this is of very questionable
              security on a multi-user system. Don't use this  option  if  you
              can avoid it.

我不确定为什么当你想自动签名软件包时,你会提到从键盘接受密码。没有人在场,也不会有键盘。最好的办法可能是使用--passphrase-fd并通过文件描述符传递密码,正如 womble 在他的评论中提到的那样。

相关内容