GPG, не спрашивая пароль с помощью брелока для ключей гнома в потрясающем

Я использую Ubuntu 16.04.2 LTS и в настоящее время испытываю потрясающий менеджер окон (я еще не настроил потрясающий файл конфигурации и использование по умолчанию).

Одна из вещи, которая не работает на меня, - то, что пароль в настоящее время не кэшируется gpg-агентом.

Я сделал следующее в .xsessionrc файле,

# GnuPG agent (avoid repeatedly putting passphrase)
gnupglog="${HOME}/.gnupg/gpg-agent.info"
if (pgrep -u "${USER}" gpg-agent); then
  eval `cat ${gnupglog}`
  eval `cut -d= -f1 ${gnupglog} | xargs echo export`
else
  eval `gpg-agent --enable-ssh-support --daemon`
fi

Я вижу, что агент запустился. Однако после выполнения команды как gpg --decrypt FILE через терминал не выталкивает диалоговое окно UI, и вместо этого он спрашивает меня пароль через терминал. Также это не кэшируется.

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

1
задан 11 July 2017 в 18:26

1 ответ

Я нашел первопричину проблемы. gpg-агент должен автоматически установить $GPG_AGENT_INFO во время вызова, но он не устанавливает огибающую переменную. Так же файл gpg-agent.info не присутствовал, как упомянуто в вышеупомянутом сообщении следовательно, вышеупомянутый код не работал. Согласно gpg документации GPG_AGENT_INFO должен указать на файл сокета gpg-агента, сопровождаемый pid gpg-агента и затем протокола (значение по умолчанию 1). Эти три поля должны быть разделены двоеточием.

Таким образом, я поместил следующий код в свой ~/.profile для решения проблемы (файл S.gpg-агента является файлом сокета, созданным gpg-агентом после того, как это запускается), Код:

if (pgrep -u "${USER}" gpg-agent); then
  export GPG_AGENT_PID=`pgrep -u ${USER} gpg-agent`
  export GPG_AGENT_INFO=${HOME}/.gnupg/S.gpg-agent:${GPG_AGENT_PID}:1
else
  eval `gpg-agent --enable-ssh-support --daemon`
  export GPG_AGENT_PID=`pgrep -u ${USER} gpg-agent`
  export GPG_AGENT_INFO=${HOME}/.gnupg/S.gpg-agent:${GPG_AGENT_PID}:1
fi

Тем не менее я не уверен, почему gpg-агент не может установить GPG_AGENT_INFO.

1
ответ дан 7 December 2019 в 15:33

Другие вопросы по тегам:

Похожие вопросы: