Simpan cache GnuPG di-cache untuk seluruh sesi pengguna
53
GnuPG dapat, dengan gpg-agent, cache akses ke kunci pribadi. Bagaimana saya bisa membuat cache itu aktif untuk seluruh sesi pengguna ?
Ketika saya membuka kunci untuk gpg-agent, itu hanya tinggal di-cache untuk waktu yang terbatas. Dengan agen SSH, saya memasukkan frasa sandi satu kali dan tetap di-cache untuk seluruh sesi. Saya ingin perilaku yang sama gpg-agent.
Jadi, ssh-agenttidak menderita masa cache yang terbatas. Tetapi gpg-agentmembatasi masa cache, setidaknya secara default. Bagaimana saya bisa menghilangkan batas waktu cache dari gpg-agent?
Konfigurasi pengguna (dalam ~/.gnupg/gpg-agent.conf) hanya dapat menentukan durasi caching default dan maksimum; itu tidak dapat dinonaktifkan.
The default-cache-ttlpilihan menetapkan batas waktu (dalam detik) setelah aktivitas GnuPG terakhir (sehingga me-reset jika Anda menggunakannya), yang maximum-cache-ttlpilihan set rentang waktu (dalam detik) cache setelah memasukkan password Anda. Nilai default adalah 600 detik (10 menit) untuk default-cache-ttldan 7200 detik (2 jam) untuk maximum-cache-ttl.
Setel ke sekitar satu tahun - katakanlah, 34560000 detik (400 hari) - dan Anda akan baik-baik saja:
Tetapi agar perubahan ini berlaku, Anda harus mengakhiri sesi dengan memulai kembali gpg-agent.
Jika Anda ingin membatasi panjang sesi Anda, Anda harus mematikan daemon saat logout. Ini sangat berbeda antara sistem operasi, jadi saya mengacu pada pertanyaan / jawaban lain yang berisi petunjuk untuk sistem yang berbeda .
Anda juga bisa memulai ulang gpg-agentselama login, tetapi ini tidak membatasi waktu caching hingga panjang sesi, tetapi login pengguna. Putuskan sendiri apakah ini masalah dalam kasus Anda.
GnuPG 2.1 dan lebih tinggi
Di GnuPG 2.1 dan di atasnya, maximum-cache-ttlopsi diubah namanya menjadi max-cache-ttltanpa perubahan lebih lanjut.
Apakah ini jawaban "Anda tidak bisa melakukan apa yang Anda minta"? Tidak jelas, karena Anda berbicara tentang membatasi panjang sesi atau membatasi waktu caching. Saya ingin persis kebalikan dari itu: tidak ada batasan sewenang-wenang pada waktu cache atau panjang sesi.
bignose
Semacam itu, Anda hanya bisa mengatasinya dengan mengatur ttl yang agak besar. Setel ke sekitar satu tahun atau lebih dan Anda akan baik-baik saja - tetapi harus mengakhiri sesi dengan memulai kembali gpg-agent.
Jens Erat
Harap dicatat bahwa dalam versi terbaru (setidaknya gnupg 2.1), maximum-cache-ttlopsi tidak ada. Untuk melihat opsi yang benar, lihat dokumentasi resmi: gnupg.org/documentation/manuals/gnupg/…
Pablo Olmos de Aguilera C.
3
Paling tidak di GnuPG 2.1 default untuk default-cache-ttladalah 600 detik (10 menit), bukan dua jam.
jlh
@ jlh Melihat halaman manual untuk berbagai versi gpg-agent, nilai yang benar tampaknya 10 menit untuk semua rilis. Saya mengedit jawabannya, terima kasih telah menunjukkan ini.
Jens Erat
7
Untuk Windows
File yang Anda perlu edit harus ditempatkan di: $env:AppData\gnupg
Jika Anda menjalankannya di jendela PowerShell itu akan terbuka: C:\Users\<UserName>\AppData\Roaming\gnupg
Cukup letakkan gpg-agent.conffile di sana dengan nilai apa pun yang Anda suka.
Anda dapat memverifikasi itu dengan menjalankan:
gpgconf.exe --reload gpg-agent
gpgconf.exe --list-options gpg-agent
Anda juga dapat menggunakan liner satu ini:
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
opsi tidak ada. Untuk melihat opsi yang benar, lihat dokumentasi resmi: gnupg.org/documentation/manuals/gnupg/…default-cache-ttl
adalah 600 detik (10 menit), bukan dua jam.gpg-agent
, nilai yang benar tampaknya 10 menit untuk semua rilis. Saya mengedit jawabannya, terima kasih telah menunjukkan ini.Untuk Windows
File yang Anda perlu edit harus ditempatkan di:
$env:AppData\gnupg
Jika Anda menjalankannya di jendela PowerShell itu akan terbuka:
C:\Users\<UserName>\AppData\Roaming\gnupg
Cukup letakkan
gpg-agent.conf
file di sana dengan nilai apa pun yang Anda suka.Anda dapat memverifikasi itu dengan menjalankan:
gpgconf.exe --reload gpg-agent
gpgconf.exe --list-options gpg-agent
Anda juga dapat menggunakan liner satu ini:
Set-Content -Path $env:AppData\gnupg\gpg-agent.conf -Value "default-cache-ttl 86400$([System.Environment]::NewLine)max-cache-ttl 86400"
sumber
Pastikan untuk memuat ulang agen gpg Anda
gpg-connect-agent reloadagent /bye
setelah mengubah konfigurasi.sumber