Код ошибки GPG 2 - PullRequest
       11

Код ошибки GPG 2

6 голосов
/ 15 июня 2011

GPG всегда возвращает 2 в результате.Мой код выглядит следующим образом:

$cmd = "/usr/bin/gpg -a --recipient $to -e -o $outfile $infile";

Где outfile - это файл, в который будут записаны зашифрованные данные, а infile - незашифрованные.

Я не знаю.почему это происходит.Может кто-нибудь, пожалуйста, скажите мне, что не так.Спасибо.

Ответы [ 4 ]

6 голосов
/ 20 июня 2011

GPG спрашивает, хотите ли вы продолжить шифрование с использованием неподписанного ключа.Поскольку ни один пользователь не может ввести Y, он выдаст ошибку.

Чтобы исправить это, установите следующие переключатели

--yes и --always-trust

3 голосов
/ 15 июня 2011

См. Это сообщение: http://lists.gnupg.org/pipermail/gnupg-users/2008-January/032410.html

Похоже, проблема с правами доступа.gpg пытается получить доступ к каталогу, к которому у него нет доступа, поэтому происходит ошибка с фатальной ошибкой.(код ошибки 2)

Это можно исправить, указав директиву homedir с каталогом, доступным для записи gpg.Например:

$cmd = "/usr/bin/gpg -a --recipient $to -e -o $outfile $infile --homedir /path/to/dir";

Информация от man gpg:

- каталог homedir
Установить имя домашнего каталога в каталог

эта опция не используется, по умолчанию используется "~ / .gnupg".Не имеет смысла использовать это в файле опций.Это также переопределяет переменную среды $ GNUPGHOME.

2 голосов
/ 04 января 2013

Возможно, вы захотите добавить ключ в список доверенных ключей:

gpg.exe --edit-key KEY_NAME
trust
5 (level of trust)
Y
Save

У меня были некоторые проблемы с параметром --always-trust, который некорректно работал в Windows XP, это помогло мне решить проблему.

1 голос
/ 19 сентября 2013

У меня была такая же проблема, но для команды декодирования

Сначала вы можете получить сообщение об ошибке, перенаправив stderr на стандартный вывод.

$cmd = "/usr/bin/gpg -a --recipient $to -e -o $outfile $infile 2>&1";

Затем вы можете изменить параметры gpg в соответствии с вашими потребностями. Поскольку у меня были файлы, зашифрованные ключом с парольной фразой, мне пришлось добавить несколько параметров.

Я начал с

gpg  -o $out -d $path

Но он пожаловался, что не может открыть tty, затем с --no-tty выводит некоторые другие ошибки и, наконец, команда для декодирования файлов с ключом с парольной фразой -

gpg --batch --passphrase $pass_phrase --no-tty -o $outfile -d $path_to_encoded_file

Надеюсь, это кому-нибудь поможет.

...