
Я пытаюсь настроить Gpg4win так, чтобы он не использовал всплывающее окно для запроса парольной фразы. Ятолькоиспользуйте gpg2 из командной строки, а это значит, что всплывающее окно одновременно раздражает и мешает, поскольку оно отвлекает внимание от командной строки и не возвращает его обратно.
Это на Windows 10.
Я попробовал отредактировать файл gpg-agent.conf со следующим содержимым:
pinentry-program C:\...path-to\pinentry.exe
В надежде, что pinentry.exe без -w32 или подобного окончания будет использоваться на консоли, но при попытке подписать тестовый файл он просто сидит там несколько секунд, а затем выводит:
$ gpg2 --sign test.md
gpg: problem with the agent: No pinentry
gpg: no default secret key: Operation cancelled
gpg: signing failed: Operation cancelled
Я пробовал добавлять кавычки вокруг пути и косые черты, поэтому я попробовал все следующее:
pinentry-program 'C:\...path-to\pinentry.exe'
pinentry-program C:/...path-to/pinentry.exe
pinentry-program file://C:/...path-to/pinentry.exe
В моем файле gpg.conf настройка use-agent уже закомментирована, о чем я нашел подсказку на разных сайтах, но я подозреваю, что это старая настройка для gpg (1), а не для gpg2.
Вместо этого я попробовал добавить no-use-agent в gpg.conf и получил следующее:
gpg: C:/.../gpg.conf:202: obsolete option "--no-use-agent" - it has no effect
Так возможно ли это вообще?
По сути, я хочу, чтобы эта команда:
gpg2 --sign test.md
Прежде чем продолжить, следует запросить парольную фразу в том же окне командной строки.
решение1
Я использовал Gpg4win v3.1.15, похоже, он использует каталог appdata как домашний каталог по умолчанию. Если ваш домашний каталог отличается, gpg.conf должен храниться там.
Создайте файл, если он еще не существует, %appdata%\gnupg\gpg.conf
со следующим содержимым:
pinentry-mode loopback
Если вы включите эту функцию, вы получите приглашение командной строки.
Кроме того, эта же настройка позволяет вам передавать пин-код как парольную фразу параметра командной строки, например gpg --passphrase 12345 --decrypt
, что, конечно, небезопасно в зависимости от вашего варианта использования. Если вы делаете программные вещи, это может быть удобно вместо ввода в стандартный ввод.