Я пытаюсь подписать метаданные репозитория 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 в своем комментарии.