Как я могу заставить Агент GPG кэшировать мой пароль?

Я - разработчик, и я обычно подписываюсь, мой Мерзавец фиксирует с моим ключом GPG. Я смог получить Агент GPG, работающий правильно над OSX так, чтобы он только попросил у меня моего пароля однажды в день, но у меня есть проблемы при получении того же самого, работающего над Ubuntu 16.04.

Вот то, что я делаю:

  • У меня есть своя установка ключей GPG / и т.д.
  • Я нахожусь в каталоге Git.
  • Я добавляю некоторые файлы к Мерзавцу.
  • Я затем иду для фиксации их (git commit), и получите запрос пароля GPG, который похож на это:

    $ git ci
    
    You need a passphrase to unlock the secret key for
    user: "Randall Degges <r@rdegges.com>"
    4096-bit RSA key, ID 8F700DA2, created 2016-04-05
    
    [master 1740961] blah
     1 file changed, 1 insertion(+)
    

Проблема: каждый раз, когда я делаю фиксацию, мне повторно предлагают мой пароль GPG снова.

То, что я хотел бы сделать, настраивают Агент GPG для кэширования моего пароля в течение 1 целого дня, таким образом, он только должен быть введен однажды.

Я прочитал тонны документации и сообщений в блоге, и вот то, что я попробовал до сих пор...

Во-первых, я изменил мой ~/.zshrc файл (я использую zsh) для установки следующего:

# GPG Agent
export GPG_TTY=$(tty)
export GPGKEY=8F700DA2

Теперь, от того, что я считал, это одно должно добиться цели после перезапуска gpg-агента, но он не делает.

Так, следующая вещь, которую я сделал, была, я определил a ~/.gnupg/gpg-agent.conf файл, как объяснено в man gpg-agent страница:

# Set the default cache time to 1 day.
default-cache-ttl       86400
default-cache-ttl-ssh   86400

# Set the max cache time to 30 days.
max-cache-ttl           2592000
max-cache-ttl-ssh       2592000

Это также не имеет никакого эффекта.

Я также попробовал различные методы блога, и т.д., но ничто, кажется, не работает. Кто-то может дать мне некоторые подсказки к вещам, которые я мог бы пропускать?

21
задан 31 July 2016 в 18:42

2 ответа

В дополнение к установке времен кэша в gpg-agent.conf, также необходимо удостовериться, что GnuPG на самом деле взаимодействует через интерфейс gpg-agent. GnuPG 2 и вверх обычно делает, ответвление GnuPG 1 не делает. Мерзавцем по умолчанию использует gpg двоичный файл, который (во время записи этого ответа) все еще является GnuPG 1, в то время как GnuPG 2 установлен как gpg2 в большинстве систем.

В конце, Вы имеете к возможностям:

24
ответ дан 23 November 2019 в 01:44

В дополнение к вышеупомянутому ответу можно также просто изменить значение по умолчанию gpg в системе к gpg2, а не gpg1.

, Если git config --global gpg.program gpg2 работы для Вас, но Вы не хотите оставлять это в своей конфигурации мерзавца (в моем случае, потому что я использую ту же конфигурацию на macOS) затем можно просто подкачать значение по умолчанию gpg.

я следовал руководству здесь , который был справедлив:

$ sudo mv /usr/bin/gpg /usr/bin/gpg1
$ sudo update-alternatives --verbose --install /usr/bin/gpg gnupg /usr/bin/gpg2 50

Это делает gpg1 старое gpg двоичный файл и символьные ссылки /usr/bin/gpg -> /usr/bin/gpg2 (с именем gnupg и приоритетом 50).

Изменение значения по умолчанию gpg могло в теории повреждать некоторые пакеты в Вашей системе, но Фрагмент Debian (текущая стабильная версия Debian) наборы gpg2 как значение по умолчанию gpg похожим способом, таким образом, у Вас не должно быть слишком многих проблем.

0
ответ дан 23 November 2019 в 01:44

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

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