Храните учетные данные GnuPG в кэше в течение всего сеанса пользователя
52
GnuPG может gpg-agentкэшировать доступ к закрытому ключу. Как сохранить этот кэш активным на протяжении всего сеанса пользователя ?
Когда я разблокирую ключ gpg-agent, он будет храниться в кэше только в течение ограниченного времени. С агентом SSH я ввожу фразу-пароль один раз, и она остается в кэше в течение всего сеанса. Я хочу того же поведения от gpg-agent.
Таким образом, ssh-agentне страдает от ограниченного срока службы кэша. Но gpg-agentограничивает время жизни кэша, по крайней мере, по умолчанию. Как можно устранить ограничение на время кэша от gpg-agent?
Пользовательская конфигурация (in ~/.gnupg/gpg-agent.conf) может определять только максимальную длительность кэширования по умолчанию; это не может быть отключено.
default-cache-ttlОпция устанавливает тайм - аут (в секундах) , после последней активности GnuPG (так он сбрасывает , если вы используете его), то maximum-cache-ttlпараметр установлен отрезок времени (в секундах) , он кэширует после ввода пароля. Значение по умолчанию составляет 600 секунд (10 минут) для default-cache-ttlи 7200 секунд (2 часа) для maximum-cache-ttl.
Установите год или около того - скажем, 34560000 секунд (400 дней) - и все будет в порядке:
Но чтобы это изменение вступило в силу, вам нужно завершить сеанс, перезапустив gpg-agent.
Если вы хотите ограничить продолжительность сеанса, вам нужно убить демона при выходе из системы. Это сильно отличается между операционными системами, поэтому я имею в виду другой вопрос / ответ, содержащий советы для разных систем .
Вы также можете перезапустить во gpg-agentвремя входа в систему, но это не ограничивает время кеширования продолжительностью сеанса, но регистрирует пользователя. Решите сами, если это проблема в вашем случае.
GnuPG 2.1 и выше
В GnuPG 2.1 и выше maximum-cache-ttlопция была переименована max-cache-ttlбез дальнейших изменений.
Это ответ «ты не можешь делать то, что просишь»? Это не ясно, поскольку вы говорите об ограничении продолжительности сеанса или ограничении времени кэширования. Я хочу с точностью до наоборот: нет произвольного ограничения времени кеширования или продолжительности сеанса.
bignose
Вроде того, вы можете только обойти это, установив довольно большой TTL. Установите его на год или около того, и у вас все будет хорошо - но нужно завершить сессию, перезапустив gpg-agent.
Йенс Эрат
Обратите внимание, что в последних версиях (по крайней мере, gnupg 2.1) эта maximum-cache-ttlопция не существует. Чтобы увидеть правильные варианты, смотрите официальную документацию: gnupg.org/documentation/manuals/gnupg/…
Пабло Олмос де Агилера С.
3
По крайней мере в GnuPG 2.1 значение по умолчанию default-cache-ttlсоставляет 600 секунд (10 минут), а не два часа.
17
@jlh Глядя на справочные страницы для разных версий gpg-agent, правильное значение составляет 10 минут для всех версий. Я отредактировал ответ, спасибо за указание на это.
Йенс Эрат
5
Для Windows
Файл, который нужно отредактировать, должен быть размещен по адресу: $env:AppData\gnupg
Если вы запустите это в окне PowerShell, оно откроется: C:\Users\<UserName>\AppData\Roaming\gnupg
Просто поместите gpg-agent.confтуда файл с любыми значениями, которые вам нравятся.
Вы можете проверить это, запустив:
gpgconf.exe --reload gpg-agent
gpgconf.exe --list-options gpg-agent
Вы также можете использовать этот вкладыш:
Set-Content -Path $env:AppData\gnupg\gpg-agent.conf -Value "default-cache-ttl 86400$([System.Environment]::NewLine)max-cache-ttl 86400"
gpg-agent
.maximum-cache-ttl
опция не существует. Чтобы увидеть правильные варианты, смотрите официальную документацию: gnupg.org/documentation/manuals/gnupg/…default-cache-ttl
составляет 600 секунд (10 минут), а не два часа.gpg-agent
, правильное значение составляет 10 минут для всех версий. Я отредактировал ответ, спасибо за указание на это.Для Windows
Файл, который нужно отредактировать, должен быть размещен по адресу:
$env:AppData\gnupg
Если вы запустите это в окне PowerShell, оно откроется:
C:\Users\<UserName>\AppData\Roaming\gnupg
Просто поместите
gpg-agent.conf
туда файл с любыми значениями, которые вам нравятся.Вы можете проверить это, запустив:
gpgconf.exe --reload gpg-agent
gpgconf.exe --list-options gpg-agent
Вы также можете использовать этот вкладыш:
Set-Content -Path $env:AppData\gnupg\gpg-agent.conf -Value "default-cache-ttl 86400$([System.Environment]::NewLine)max-cache-ttl 86400"
источник
Обязательно перезагрузите ваш агент gpg
gpg-connect-agent reloadagent /bye
после изменения конфигурации.источник