как обойти пинентри (экран парольной фразы) при расшифровке файла с помощью gpgme - PullRequest
2 голосов
/ 29 декабря 2011

Я пытаюсь расшифровать файл с сервера, на котором у меня есть требуемый открытый ключ этого сервера.Брелок имеет защиту паролем, и поэтому, когда я пытаюсь расшифровать файл, он запрашивает парольную фразу.

Есть ли способ обойти эту парольную фразу, передавая пароль, когда мы пытаемся расшифровать файл.

Я использую gpg-agent, когда фраза-пароль кэшируется на время по умолчанию 600 с, и по какой-то причине я не могу установить max-cache-ttl (у меня это не сработало, я не знаю, у)и доступен только для этого сеанса.

Теперь я хочу кэшировать фразу-пароль, для которой я использую gpg-preset-passphrase.Я установил его в .gnupg / gpg-agent.conf как gpg-preset-passphrase --preset hex.Я не знаю, что мне не хватает в этом.

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

Спасибо

1 Ответ

3 голосов
/ 07 января 2012

Я не могу обойти экран парольной фразы или пинентри, но я использовал gpg-agent параметры, такие как default-cache-ttl, чтобы установить время кэширования. Так что со второй попытки пинентри собирается извлечь кэшированную фразу-пароль и сбросит таймер на defaul-cache-ttl.

Существует еще одна опция с именем max-cache-ttl, даже после успешного извлечения кэшированной парольной фразы и сброса default-cache-ttl, эта опция не меняет свой таймер и истекает из кэшированной парольной фразы после заданного времени ожидания.

Например: если я установлю их обоих на 10 часов (то есть, 36000 секунд), если я вызову дешифрование через 5 часов, по умолчанию будет сброшен таймер, и теперь у нас есть еще 10 часов. Но максимальный срок действия истекает через 10 часов и, таким образом, удаляет кэшированную фразу-пароль через 10 часов.

Еще одна проблема, которую я обнаружил, это проблема с сеансом работы с gpg-agent то есть, если я открою новый сеанс и попытаюсь расшифровать, этого не произойдет, и из-за ошибки выйдет gpg-agent для этого сеанса. Я написал сценарий оболочки и поместил его в bashrc, чтобы он запускался сразу после запуска нового сеанса

...