Как подписать пакет rpm без ввода пароля? - PullRequest
0 голосов
/ 09 мая 2018

Я пытаюсь подписать пакет RPM, который я создал, используя GPG, не вводя пароль, вводя пароль, который я могу подписать, однако без ввода пароля открывается окно сообщения Please enter the passphrase to unlock the OpenPGP secret key, пароль мне не нужно запрашивать при подписании пакета, так как это будет скрипт, выполняемый в «тихом режиме». Возможно, у меня неправильная команда, но мне трудно найти решение.

Это команда, которую я пытаюсь выполнить, и даже тогда запрашивается пароль:

gpg --batch --passphrase "78910" --clearsign test-1-0.x86_64.rpm

С помощью этой второй команды пароль не запрашивается:

echo "78910" | gpg --batch --passphrase-fd 0 --clearsign test-1-0.x86_64.rpm

Однако подпись не выполняется и возвращает ошибку, описанную ниже:

gpg: signing failed: Inappropriate ioctl for device gpg: /test-1-0.x86_64.rpm: clear-sign failed: Inappropriate ioctl for device

С этой третьей командой сообщаемая ошибка отличается:

echo "78910" | gpg --batch --passphrase-fd 0 ~/.gnupg/trustdb.gpg --clearsign test-1-0.x86_64.rpm

Сообщение об ошибке:

gpg: Note: '--clearsign' is not considered an option gpg: WARNING: no command supplied. Trying to guess what you mean ... usage: gpg [options] [filename]

Это мой код для создания ключа gpg, я пытаюсь создать без пароля, но я получаю сообщение об ошибке, когда значение пароля пустое.

#!/bin/bash
echo "Key-Type: 1" > gen-key-script
echo "Key-Length: 1024" >> gen-key-script
echo "Subkey-Type: 1" >> gen-key-script
echo "Subkey-Length: 1024" >> gen-key-script}
echo "Name-Real: gpg test" >> gen-key-script
echo "Name-Email: test@test.com" >> gen-key-script
echo "Expire-Date: 0" >> gen-key-script
echo "Passphrase: 78910" >> gen-key-script
echo "" >> gen-key-script

#---------------------------------------------------------
# GENERATE THE KEY
#---------------------------------------------------------
gpg --batch --gen-key gen-key-script

#---------------------------------------------------------
# .RPMMACROS
#---------------------------------------------------------
echo "%_gpg_name gpg test <test@test.com>" > ~/.rpmmacros

1 Ответ

0 голосов
/ 09 мая 2018

Если вы не хотите вводить пароль, вам нужно хранить свой закрытый ключ на диске, не будучи защищенным паролем. Это означает, что каждый, кто имеет доступ к файлу ключа, может подписать ваши пакеты. Решите, хотите ли вы этого.


Если вы не хотите защищать ключ, используйте %no-protection, например:

echo "%no-protection" > gen-key-script
echo "Key-Type: 1" >> gen-key-script
echo "Key-Length: 1024" >> gen-key-script
echo "Subkey-Type: 1" >> gen-key-script
echo "Subkey-Length: 1024" >> gen-key-script
echo "Name-Real: gpg test" >> gen-key-script
echo "Name-Email: test@test.com" >> gen-key-script
echo "Expire-Date: 0" >> gen-key-script
echo "" >> gen-key-script
...