Menggunakan GnuPG dan agen gpg daemon-nya

9

Saya menggunakan gpg-agentuntuk mengingat dan memberikan GnuPGkata sandi ketika membangun Debian/Ubuntupaket. Tapi saya masih bingung bagaimana cara gpg-agentkerjanya. Saya memohon gpg-agentsebagai:

eval $(gpg-agent --daemon)

Terkadang berhasil. Tapi yang menggangguku adalah bahwa kadang-kadang itu tidak berhasil. Yaitu, kadang-kadang proses pembangunan meminta GnuPGkata sandi saya sekali, kadang tidak, dan kadang-kadang berkali-kali. Ini semua terjadi selama satu sesi bash tunggal, setelah saya dipanggil gpg-agentseperti sebelumnya. Tidak dimintai kata sandi kali ini tidak menjamin bahwa saya tidak akan dimintai kata sandi lain kali. Saya masih belum mencari tahu mengapa gpgmemutuskan untuk meminta saya untuk kata sandi dan mengapa tidak.

Apakah itu terjadi pada Anda juga?

Terima kasih

xpt
sumber
1
Anda harus meluangkan waktu untuk mencoba menemukan dalam kondisi apa kegagalan itu dan kondisi apa yang berhasil. Jika Anda bisa menggambarkan apa yang secara pasti berkorelasi dengan kegagalan, maka orang lain lebih mungkin memikirkan solusi.
bignose
Di Emacs, untuk GNUS dan .authinfo.gpg, saya mendapat petunjuk untuk menggunakannya gpg2, yang gpg-agentterkait dengan. Jadi (setq epg-gpg-program "/usr/bin/gpg2")bekerja untuk saya. Mungkin Anda harus menemukan aplikasi mana yang memiliki masalah, mereka mungkin lebih suka gpg(1).
Brady Trainor

Jawaban:

7

Menemukan cara menggunakan dengan benar gpg-agentdari http://tr.opensuse.org/SDB:Using_gpg-agent

Setelah itu, gpg-agentdaemon saya sedang menyimpan GnuPGkata sandi dengan benar sekarang. Tidak ada yang salah dengan pengaturan saya, hanya saja saya tidak tahu cara menguji apakah GnuPGkata sandi saya di -cache dengan benar atau tidak.

Sekarang saya lakukan:

echo "test" | gpg -ase -r 0xMYKEYID | gpg

Dari situs: "Ganti 0xMYKEYID dengan ID kunci GnuPG Anda. Saat menjalankan perintah ini, agen harus membuka dialog kata sandi grafis dua kali: pertama untuk menandatangani atau mengenkripsi (gpg -ase) (gpg -ase) kemudian untuk dekripsi atau tanda tangan cek ( | gpg). Mulai sekarang, setiap kali GnuPG digunakan (baik dari baris perintah atau tertanam dalam program grafis seperti KMail), kata sandi agen gpg akan diteruskan secara otomatis (sampai batas waktu habis atau antarmuka grafis Tutup)."

Dan untuk menghindari berakhirnya caching, saya sekarang telah menetapkan batas waktu sangat lama:

$ cat ~/.gnupg/gpg-agent.conf
max-cache-ttl 60480000
default-cache-ttl 60480000
xpt
sumber
Menurut linux.die.net/man/1/gpg-agent , Anda juga dapat menambahkan --write-env-file "${HOME}/.gpg-agent-info"saat memulai gpg-agent dan kemudian menambahkan if [ -f "${HOME}/.gpg-agent-info" ]; then . "${HOME}/.gpg-agent-info"; export GPG_AGENT_INFO fi ke .bashrc Anda untuk mendeteksi apakah agen sudah berjalan. Sepertinya solusi yang sedikit lebih bersih.
Sean the Bean
@ SeantheBean, bagus sekali. Saya akan mengujinya dan kembali kepada Anda ...
xpt
WARNING: "--write-env-file" is an obsolete option - it has no effectsetidaknya sejak Apr 4 '16. Ref: serverfault.com/a/481174
xpt