Не удалось расшифровать файл 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

Другие вопросы по тегам