2011-12-29 3 views
2

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

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

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

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

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

Благодарности

+0

См. Это, это может помочь: http://stackoverflow.com/questions/1867757/using-passphrase-callback- in-ruby-gpgme –

+0

Спасибо, Сергей, я прошел через это, но это мне не помогло. Я делаю то же самое, что он хотел передать кодовую фразу как хэш, но это не сработало. Тем не менее всплывает экран фраз. – kill007

+0

Вы читали принятый ответ? В нем упоминаются каталоги и окружающая среда. Вы тоже это попробовали? –

ответ

3

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

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

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

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

+0

Bump !!! Параметр default-cache-ttl должен сопровождаться параметром max-cache-ttl. В противном случае парольная фраза истекает через 2 часа, даже если по умолчанию-cache-ttl установлен более 2 часов, поскольку значение max-cache-ttl равно 2 часа. Есть ли способ, которым мы можем просто определить default-cache-ttl i.e., я не хочу истекать кеш даже после установки max-cache-ttl. – kill007

Смежные вопросы