Bagaimana saya bisa memulai kembali gpg-agent?

67

Beberapa perubahan dalam konfigurasi GnuPG membutuhkan gpg-agentrestart / reboot, tapi ... Bagaimana saya bisa melakukan itu? Saya mencoba gpg-agent restart, service gpg-agent restarttetapi tidak berhasil.

Felipe
sumber

Jawaban:

99

Dengan GPG saat ini (2.1+), untuk berhenti gpg-agent Anda dapat menggunakan gpgconf --kill, seperti ini:

gpgconf --kill gpg-agent

Anda tidak perlu me-restart secara manual. GPG akan memulai kembali saat dibutuhkan.

sontonbarker
sumber
6
Ada kasus di mana Anda ingin memulai agen secara manual, misalnya ketika Anda menggunakannya dengan dukungan ssh diaktifkan. Agen TIDAK akan mulai secara otomatis ketika Anda mencoba login ssh.
hasufell
1
Jika Anda pernah menghapus ~/.gnupgdirektori, Anda harus memulai ulang agen gpg secara manual.
Christopher Martin
21

Cara pilihan saya adalah dengan gpg-connect-agent reloadagent /bye. Lihat gpg-connect-agent help /byedaftar perintah lengkap.

ben
sumber
10

gpg-agentbukan layanan seluruh sistem tetapi dimulai sekali per pengguna (dengan demikian, tidak dikelola oleh service). Meskipun kadang-kadang dipanggil oleh pengguna dotfile atau setidaknya di Debian dan turunannya juga ketika X11 dimulai (dan gpg-agentdiinstal) di /etc/X11/Xsession.d/90gpg-agent(untuk memastikan bahwa yang umum gpg-agentdigunakan oleh semua panggilan GnuPG, tidak peduli apakah dari terminal atau aplikasi GUI); itu juga dimulai secara otomatis oleh GnuPG bila diperlukan. Dari man gpg-agent:

Agen secara otomatis dimulai berdasarkan permintaan oleh gpg, gpgsm, gpgconf, atau gpg-connect-agent. Jadi tidak ada alasan untuk memulainya secara manual. Jika Anda ingin menggunakan Agen Shell yang disertakan, Anda dapat mulai menggunakan:

gpg-connect-agent /bye

Biasanya, simpel killall gpg-agent(dari cangkang non-root) harusnya baik untuk diakhiri gpg-agent. Anda mungkin akan mengamati sedikit keterlambatan saat menggunakan GnuPG di waktu berikutnya, seperti gpg-agentyang dimulai lagi.

Jens Erat
sumber
2
Perubahan ini dalam GPG 2.1.x dan prosesnya ditangani melalui dirmngr. Perintah untuk menjalankan kemudian dirmngr --shutdowndiikuti oleh dirmngr --daemondan kadang-kadang opsi tambahan (saya juga menyertakan homedir GPG tertentu dan --use-torbendera).
Ben
1

Dalam pengalaman saya ada beberapa skenario di mana gpg akan gagal untuk memulai agen gpg baru (mengimpor kunci baru?).

Bunuh agen lama seperti itu:

GNUPGHOME="${GNUPGHOME:-$HOME/.gnupg}" gpgconf --kill gpg-agent

dan kemudian mulai yang baru:

gpg-agent --homedir "${GNUPGHOME:-$HOME/.gnupg}" --daemon

Mengatur --homedir secara eksplisit saat memulai memastikan daftar ps Anda jelas ketika Anda memiliki lebih dari satu homedir; dan itu analog dengan apa yang dilakukan gpg ketika mulai itu.

Mengatur GNUPGHOME saat berhenti tidak perlu, tetapi mungkin membuat Anda atau peninjau kode lebih nyaman.

Ben Hyde
sumber