Не удалось расшифровать файл gpg, используя фразу-пароль в Unix
Я пытаюсь расшифровать файл с помощью следующей команды в командной строке Unix:
gpg --passphrase-file /path/to/passphrase/file --output /path/to/output/dir/full_db_restore --decrypt full_db_backup_current.tar.gpg
Я получаю следующую ошибку при запуске команды выше:
gpg: 3DES encrypted data
gpg: problem with the agent: No pinentry
gpg: encrypted with 1 passphrase
gpg: decryption failed: No secret key
Я проверил, что pinentry установлен. Я не уверен, что проблема с Пентри У меня такое ощущение, что это может быть из-за ошибки "Нет секретного ключа". Любая помощь будет оценена.
2 ответа
Вы должны использовать эту команду:
gpg --batch --passphrase-fd 1 --passphrase-file /path/to/passphrase/file
--output /path/to/output/dir/full_db_restore full_db_backup_current.tar.gpg
--batch: используется в скриптах для неинтерактивного режима (без запроса);
--passphrase-fd 1 вместе с --passphrase-file: прочитать парольную фразу из файла.
Если вы используете только --passphrase-file в *nix, он не будет работать.
Удачи.
Я нашел решение для этого.
/usr/bin/gpg --no-tty --batch --passphrase-file /path/to/passphrase/file --output \
/path/to/output/dir/full_db_restore --decrypt full_db_backup_current.tar.gpg
Разница лишь в том, что я добавил --no-tty
а также --batch
опции. После входа на мой сервер Unix я переключаю пользователей с userA на userB. Я предполагаю, что, поскольку я переключаю пользователей, произошла ошибка. Я не уверен, что это решение для записи, так как указанные выше параметры используются при вызове команды из сценария оболочки. Любая дополнительная информация будет принята с благодарностью. Заранее спасибо.
Используйте ниже скрипт
#! /bin/sh gpg --pinentry-mode loopback --passphrase='ПАРОЛЬ' --output /output/outputFileName /input/inputFileName