Tüm kullanıcı oturumu için GnuPG kimlik bilgilerini önbellekte saklayın


53

GnuPG, gpg-agentözel bir anahtara önbellek erişimi yapabilir . Bu önbelleği tüm kullanıcı oturumu için nasıl aktif tutabilirim ?

Anahtarının kilidini açtığımda gpg-agent, yalnızca sınırlı bir süre önbellekte kalır. SSH'nin ajanıyla, bir defa parolaya giriyorum ve tüm oturum için önbellekte kalıyor. Ben de aynı davranışı istiyorum gpg-agent.

Yani, ssh-agentsınırlı bir önbellek ömründen muzdarip değil. Ancak gpg-agent, en azından varsayılan olarak önbellek ömrünü sınırlar. Nasıl olabilir önbellek zamanında sınırını ortadan gelen gpg-agent?

Yanıtlar:


69

GnuPG 2'ye kadar

Kullanıcı yapılandırması (in ~/.gnupg/gpg-agent.conf) yalnızca varsayılan ve maksimum önbellekleme süresini tanımlayabilir; devre dışı bırakılamaz.

Bu default-cache-ttlseçenek, son GnuPG aktivitesinden sonra zaman aşımını (saniye cinsinden) ayarlar (eğer kullanırsanız sıfırlar), maximum-cache-ttlseçenek, şifrenizi girdikten sonra önbelleğe aldığı zaman dilimini (saniye cinsinden) ayarlar. Varsayılan değer 600 saniye (10 dakika) default-cache-ttlve 7200 saniyedir (2 saat) maximum-cache-ttl.

Bir yıla kadar ayarlayın - örneğin, 34560000 saniye (400 gün) - ve iyi durumda olmanız gerekir:

default-cache-ttl 34560000
maximum-cache-ttl 34560000

Ancak bu değişikliğin yürürlüğe girmesi için, gpg-agent'ı yeniden başlatarak oturumu sonlandırmanız gerekir.

Oturum sürenizi sınırlandırmak istiyorsanız, oturumu kapatırken arka plandaki cinayeti öldürmeniz gerekir. Bu işletim sistemleri arasında çok farklı, bu yüzden farklı sistemler için ipuçları içeren başka bir soruya / cevaba atıfta bulunuyorum .

gpg-agentOturum açma sırasında da yeniden başlatabilirsiniz , ancak bu işlem önbelleğe alma süresini oturum uzunluğuyla sınırlamaz, ancak bir kullanıcının girişlerini de sınırlar. Bu durumda bir sorun olup olmadığını kendinize karar verin.

GnuPG 2.1 ve üzeri

GnuPG 2.1 ve üzeri sürümlerde, maximum-cache-ttlseçenek daha max-cache-ttlfazla değişiklik yapılmadan yeniden adlandırıldı .


Bu bir “sorduğun şeyi yapamazsın” cevabı mı? Net değil, çünkü oturum süresini sınırlamaktan veya önbelleğe alma süresini sınırlamaktan bahsediyorsunuz. Bunun tam tersini istiyorum: önbellek süresinde veya oturum uzunluğunda isteğe bağlı bir sınır yok.
bignose,

Bunun gibi, yalnızca oldukça büyük bir ttl ayarlayarak geçici çözüm yapabilirsiniz. Bir yıla kadar ayarlayın ve iyi olmanız gerekir; ancak oturumu yeniden başlatarak sonlandırmanız gerekir gpg-agent.
Jens Erat

En son sürümlerde (en azından gnupg 2.1), maximum-cache-ttlseçeneğin mevcut olmadığını lütfen unutmayın . Doğru seçenekleri görmek için resmi belgelere bakın: gnupg.org/documentation/manuals/gnupg/…
Pablo Olmos de Aguilera C.

3
En azından GnuPG 2.1'de varsayılan default-cache-ttlsüre iki saat değil 600 saniyedir (10 dakika).
JLH

@jlh Farklı sürümleri için man sayfalarına bakarak, tüm sürümler gpg-agentiçin doğru değer 10 dakika gibi görünüyor. Cevabı değiştirdim, bunu gösterdiğiniz için teşekkür ederim.
Jens Erat

7

Pencereler için

Düzenlemeniz gereken dosya şuraya yerleştirilmelidir: $env:AppData\gnupg

Bunu bir PowerShell penceresinde çalıştırırsanız açılacaktır: C:\Users\<UserName>\AppData\Roaming\gnupg

Sadece gpg-agent.confdosyayı oraya istediğiniz değerlerle yerleştirin.

Çalıştırarak aldığını doğrulayabilirsiniz:

  1. gpgconf.exe --reload gpg-agent
  2. gpgconf.exe --list-options gpg-agent

Bunu bir de kullanabilirsiniz: Set-Content -Path $env:AppData\gnupg\gpg-agent.conf -Value "default-cache-ttl 86400$([System.Environment]::NewLine)max-cache-ttl 86400"


Buradaki ikinci bir cevap uygun değilse, bunu, Windows ile etiketlenen kendi sorusuna taşıyabiliriz. Neyin doğru olduğundan emin değilim :)
CubanX

Teşekkürler ve burada saklayın - tüm bilgilerin tek bir yerde olması iyi. Bar
barfuin

5

gpg-connect-agent reloadagent /byeConfig ayarını değiştirdikten sonra gpg temsilcinizi yeniden yüklediğinizden emin olun .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.