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?

Jawaban:


69

Hingga GnuPG 2

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:

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

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:

  1. gpgconf.exe --reload gpg-agent
  2. 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"


Jika jawaban kedua di sini tidak sesuai, kami dapat memindahkannya ke pertanyaannya sendiri, ditandai dengan Windows. Tidak yakin apa yang benar :)
CubanX

Terima kasih dan simpan di sini - senang memiliki semua info di satu tempat. 👍
barfuin

5

Pastikan untuk memuat ulang agen gpg Anda gpg-connect-agent reloadagent /byesetelah mengubah konfigurasi.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.