Я пытаюсь подписать метаданные репозитория yum с помощью GPG, как часть задания Jenkins. Это оказалось труднее, чем я представлял сначала, но я уверен, что многие люди уже это сделали.
Я выяснил, что могу сделать это на терминале, используя: -
gpg --detach-sign --armor --local-user "Our Team" repomd.xml
Однако появляется окно стиля curses, в котором запрашивается ключ, и я хотел бы автоматизировать это как часть работы Jenkins. . Я использовал ожидание для подписания фактических пакетов RPM, и это сработало, но я не думаю, что смогу сделать это с помощью этого метода gpg / curses. Есть ли способ сказать gpg, чтобы он просто принимал ввод с клавиатуры, а не всплывающее поле ввода текста? (Я читал справочную страницу, но она действительно огромна, и я застреваю).
Буду пытаться, но, надеюсь, кто-то уже решил это?
На странице руководства вы найдете несколько вариантов передачи ключевой фразы:
--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 упомянул в своем комментарии.