Я пытаюсь написать сценарий расшифровки gpg, и поэтому необходимо указать пароль в командной строке. Согласно man-странице, есть три способа сделать это: чтение из файла с использованием --passphrase-file
, чтение из stdin (или другого дескриптора файла) с использованием --passphrase-fd 0
, или включение в командную строку с использованием just --passphrase
. Все вышеперечисленное также требует установки --batch
, что я и сделал.
Моя последняя попытка командной строки:
echo "<password>" | gpg2 --no-tty --batch --passphrase-fd 0 -d -o /<path_to_destination>/$FILE_NAME $FILE
который по-прежнему всплывает диалоговое окно с просьбой ввести пароль. Что мне здесь не хватает? Для справки, если это имеет значение, мой пароль содержит некоторые специальные символы, такие как &
, но, похоже, на это не жалуется. Также версия gpg - 2.1.9:
# gpg2 --version
gpg (GnuPG) 2.1.9
libgcrypt 1.7.1
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Home: ~/.gnupg
Supported algorithms:
Pubkey: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2
РЕДАКТИРОВАТЬ: в отличие от Как заставить GPG использовать пинентри консольного режима для запроса паролей?, который просто пытается получить текстовую запись пароля для использования в сеансе SSH, я пытаюсь получить полностью неинтерактивный метод использования GPG для использования в сценариях.