Не удалось расшифровать файл gpg, используя фразу-пароль в Unix

5276

Я пытаюсь расшифровать файл с помощью следующей команды в командной строке 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 установлен. Я не уверен, что проблема с Пентри У меня такое ощущение, что это может быть из-за ошибки «Нет секретного ключа». Любая помощь будет оценена.

1
Хороший вопрос, но я думаю, что его следует перенести в суперпользователя, потому что это не вопрос, связанный с программированием. Heisenbug 13 лет назад 0

2 ответа на вопрос

2
James

Я нашел решение для этого.

/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. Я предполагаю, что, поскольку я переключаю пользователей, произошла ошибка. Я не уверен, что это решение для записи, так как указанные выше параметры используются при вызове команды из сценария оболочки. Любая дополнительная информация будет принята с благодарностью. Заранее спасибо.

2
Fernando Augusto

Вы должны использовать эту команду:

 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, он не будет работать.

Удачи.