GPG шифрует файл без взаимодействия с клавиатурой
Я запускаю следующую команду в crontab для шифрования файла, и я не хочу взаимодействия с клавиатурой
echo "PASSPHRASE" | gpg --passphrase-fd 0 -r USER --encrypt FILENAME.TXT
но у меня есть такой ответ:
gpg: C042XXXX: There is no assurance this key belongs to the named user
pub 40XXX/C042XXXX 2012-01-11 Name LastName. (comment) <user@email.com>
Primary key fingerprint: XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
Subkey fingerprint: XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
It is NOT certain that the key belongs to the person named
in the user ID. If you *really* know what you are doing,
you may answer the next question with yes.
Use this key anyway? (y/N)
8 ответов:
альтернативой-особенно если ключ может меняться время от времени-было бы прикрепить
--trust-model always
к вашей команде gpg.вот соответствующий бит из man-страницы:
--trust-model pgp|classic|direct|always|auto Set what trust model GnuPG should follow. The models are: pgp This is the Web of Trust combined with trust signatures as used in PGP 5.x and later. This is the default trust model when creating a new trust database. classic This is the standard Web of Trust as used in PGP 2.x and earlier. direct Key validity is set directly by the user and not calculated via the Web of Trust. always Skip key validation and assume that used keys are always fully trusted. You generally won't use this unless you are using some external validation scheme. This option also suppresses the "[uncertain]" tag printed with signature checks when there is no evidence that the user ID is bound to the key. auto Select the trust model depending on whatever the internal trust database says. This is the default model if such a database already exists.
вот мое решение, основанное на gpg2 (но я уверен, что вы можете применить подобную технику к gpg)
$ gpg2 --edit-key {recipient email address} > trust > 5 (select 5 if you ultimately trust the key) > save
это скажет gpg2 полностью доверять ключу, так что вы можете зашифровать без подсказки
подход рубить:
echo -n PASSPHRASE > phrase chmod 400 phrase #Make sure ONLY the user running the cron job can read the phrase yes | gpg --passphrase-fd 3 --recipient USER --encrypt FILENAME.txt 3<phrase
основная проблема заключается в том, что ключ для потребителя не подписан. Если Вы доверяете ему, вы можете подписать его с
gpg --edit-key USER sign
он, вероятно, задаст пару вопросов, в зависимости от вашей конфигурации. Сделайте это один раз, тогда вы должны быть хороши, чтобы пойти в свой кронтаб. Я бы все равно рекомендовал использовать решение, которое я предложил, помещая парольную фразу в отдельный файл и делая ее читаемой только одним пользователем, от имени которого выполняется команда. Если вы это сделаете это, вы можете убить
yes |
и просто зашифровать строку.
используйте эту команду, это поможет вам
echo "PASSPHRASE" | gpg --passphrase-fd 0 --always-trust -r USER --encrypt FILENAME.TX
Я предполагаю, что, как и я, многие люди приходят сюда для "без взаимодействия с клавиатурой" часть вопроса. С gpg2 и GPG-агентом стало довольно сложно подписывать/шифровать/расшифровывать материал без какого-либо взаимодействия с клавиатурой. Вот как вы создадите подпись, Когда ваш открытый секретный ключ passphrase сохраняется в текстовом файле:
cat something_so_sign.xzy | gpg \ --passphrase-file "plaintext_passphrase.txt" \ --batch \ --pinentry-mode loopback \ -bsa
изменение-b-s-a в зависимости от ваших потребностей. Остальные переключатели являются обязательными. Вы также можете просто использовать
--passphrase 'SECRET'
. Как уже указывалось будьте осторожны с этим. Конечно, текстовые файлы с открытым текстом не намного лучше.
или подписать ключ (после того, как вы veryfied отпечаток пальца, конечно):
gpg --sign-key <recipient email address>
после этого вы полностью доверяете ключ.
1 = I don't know or won't say 2 = I do NOT trust 3 = I trust marginally 4 = I trust fully 5 = I trust ultimately
Я тоже столкнулся с этим. Я не мог получить знак-ключ, чтобы сделать что-нибудь интересное. Вот что я сделал:
создать ключ gpg:
gpg --gen-key
получить длинный идентификатор ключа (результат в 5-й колонке):
gpg --list-keys --with-colon name@domain.tld
добавить доверенную ключевую строку в ~ / gnupg / gpg.conf
trusted-key 16DIGITALPHANUMERICKEYID
строка gpg в сценарии резервного копирования:
gpg -e -r name@domain.tld backup_file.tgz
отладка cron: Я также захватываю вывод cron dubugging, отправляя stdout и stderr в файл журнала в командной строке cron. Это полезно знать
когда вы создаете сертификат в первый раз с вашей электронной почты-id выберите полностью доверенный сертификат, то всякий раз, когда вы шифруете любой файл не будет задавать вопрос, как.... для получения дополнительной информации откройте изображение в ссылке выше.
Не уверен, что ключ принадлежит человеку, названному в пользователе ИДЕНТИФИКАТОР. Если вы действительно знаете, что вы делаете, вы можете ответить на следующий вопрос с "да".
использовать этот ключ в любом случае? (y/N)