gpg mulai gpg-agent sesuai permintaan?

13

Halaman manual gpg-agentnegara:

   The agent is usualy started on demand by gpg,  gpgsm,  gpgconf  or
   gpg-connect-agent.   Thus there is no reason to start it manually.
   In case you want to use the included Secure Shell  Agent  you  may
   start the agent using:

     gpg-connect-agent /bye

   The usual way to run the agent is from the ~/.xsession file:

     eval $(gpg-agent --daemon)

Ini di satu sisi memberitahu saya bahwa "tidak ada alasan untuk memulainya secara manual" dan di sisi lain memberitahu saya bagaimana memulainya secara manual. - Apakah saya salah paham tentang sesuatu di sini?

Pada sistem saya, sepertinya saya harus memulainya secara manual. Jika tidak misalnya gpg-connect-agentmengeluh: can't connect to the agent: IPC connect call failed. - Apakah saya perlu mengonfigurasi apa pun untuk gpg-connect-agentmemulai agen seperti yang dinyatakan dalam halaman manual?


Juga halaman manual gpg-connect-agentmengatakan:

   --agent-program file
          Specify the agent program to be started if none is running.

Namun gpg-connect-agent --helptidak mencantumkan opsi ini dan perintahnya juga mengeluh jika saya mencoba menggunakannya.

Sepertinya halaman manual menjelaskan perintah yang berbeda, atau apakah saya melewatkan sesuatu yang penting?


Sistem saya adalah Arch Linux saat ini. (Situasi yang sama pada kotak debian lain.)

Detail yang diminta:

$ gpg --version
gpg (GnuPG) 2.0.22
libgcrypt 1.5.3
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Home: ~/.gnupg
Supported algorithms:
Pubkey: RSA, ELG, DSA, ?, ?
Cipher: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH,
        CAMELLIA128, CAMELLIA192, CAMELLIA256
Hash: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2
$ gpg-connect-agent --version
gpg-connect-agent (GnuPG) 2.0.22
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Home: ~/.gnupg
$ man gpg-connect-agent |grep -A1 agent-program
       --agent-program file
              Specify the agent program to be started if none is running.
$ gpg-connect-agent --agent-program foo
gpg-connect-agent: invalid option "--agent-program"
$ gpg-connect-agent /bye
gpg-connect-agent: can't connect to the agent: IPC connect call failed
michas
sumber
Versi gpg-agent dan gpg-connect-agent mana yang Anda gunakan?
Jenny D
1
Perhatikan juga bahwa ada daemon keyring gpg lainnya. Misalnya, gnome memiliki gnome keyring, yang menangani kata sandi gpg, ssh, dan umum. Ini seringkali jauh lebih baik untuk dikerjakan karena Anda dapat memiliki satu kata sandi untuk membuka semuanya, dan mereka dapat secara otomatis dibuka ketika Anda masuk.
Patrick
Saya menambahkan detail konkret di atas. Saya sadar akan gnome-keyring-daemon, namun saya tidak menjalankan gnome pada kotak itu. - Pertanyaannya saat ini adalah, apakah gpg dapat memulai daemonnya sendiri berdasarkan permintaan, atau tidak.
michas

Jawaban:

5

Itu kata-kata buruk di halaman manual. Saya kira itu dimaksudkan sebagai: "Anda tidak dipaksa untuk memulai agen gpg secara manual." Ini masuk akal karena GnuPG 2.x membutuhkan gpg-agentsedangkan itu opsional di 1.x

Jadi: "Jadi tidak ada alasan untuk memulainya secara manual" "... untuk menjalankan alat".

Tetapi: Jika Anda ingin fitur caching maka gpg-agentharus dijalankan sebagai daemon dan dengan demikian dimulai sebelum alat yaitu secara manual atau dari ~/.xsessionkarena alat mencari variabel lingkungan GPG_AGENT_INFOuntuk menemukan (kanan) berjalan gpg-agent. Jika alat mulai gpg-agentmaka gpg-agentkeluar ketika alat keluar.

gpg-connect-agent /byemungkin bug nyata di halaman manual. AFAIK ini digunakan untuk menguji apakah gpg-agentsedang berjalan tetapi tidak untuk memulainya. Ia bahkan tidak dapat bekerja seperti itu karena Anda perlu shell (lebih tepat: proses induk ke alat yang akan dimulai) untuk pengaturan GPG_AGENT_INFO.

Hauke ​​Laging
sumber