Как настроить gpg2 для запроса пароля на консоли, а не во всплывающем окне?
Я пытаюсь настроить 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
Если вы включите это, вы получите приглашение командной строки.
Кроме того, этот же параметр позволяет вам передавать PIN-код в качестве парольной фразы параметра командной строки, напримерgpg --passphrase 12345 --decrypt
, что, конечно, небезопасно в зависимости от вашего варианта использования. Если вы занимаетесь программными задачами, это может быть удобно вместо ввода стандартного ввода.