Cara membuat gpg menemukan gpg-agent

23

Di Fedora 22, gpg tidak menemukan gpg-agent:

% gpg-agent --daemon                                           

% gpg -vvv --use-agent --no-tty --decrypt file.gpg 
gpg: using character set `utf-8'
:pubkey enc packet: version 3, algo 1, keyid 3060B8F7271AFBAF
  data: [4094 bits]
gpg: public key is 271AFBAF
gpg: using subkey 271AFBAF instead of primary key 50EA64D5
gpg: using subkey 271AFBAF instead of primary key 50EA64D5
gpg: gpg-agent is not available in this session
gpg: Sorry, no terminal at all requested - can't get input
Roman Cheplyaka
sumber

Jawaban:

36

Melihat versi mengungkapkan masalah:

% gpg-agent --version
gpg-agent (GnuPG) 2.1.7

% gpg --version                                                               
gpg (GnuPG) 1.4.19

Komponen berasal dari paket yang berbeda ( gnupg2-2.1.7-1.fc22.x86_64dan gnupg-1.4.19-2.fc22.x86_64dalam kasus saya). Solusinya adalah menggunakan gpg2 perintah, bukan gpg.

Roman Cheplyaka
sumber
1
Terima kasih. Saya menghabiskan 30 menit di internet mencoba untuk mencari tahu hal ini ... ternyata sebagian besar dokumentasi dan instruksi tidak memperhitungkan kerusakan antara versi alat. saya harus mengetikkan frasa sandi saya untuk setiap proses gpg pada 20 file yang ingin saya tandatangani, sekarang saya bisa melakukannya sekali saja. Terima kasih lagi.
don bright
ini masih relevan dengan Fedora 27; menggunakan gpg2juga memungkinkan integrasi gnome
Alex Gyoshev
8

Dalam hal ini bermanfaat bagi sebagian orang, gpg1.4 dapat bekerja dengan baik dengan gpg-agent2.1.

Ketika melihatnya, saya menemukan posting ini: https://lists.gnupg.org/pipermail/gnupg-devel/2014-October/029024.html

Agen tersebut kompatibel, tetapi tidak lagi mengekspor variabel lingkungan yang diharapkan oleh versi gpg yang lebih lama. Jika Anda mengaturnya secara manual, itu hanya akan berfungsi:

export GPG_AGENT_INFO=${HOME}/.gnupg/S.gpg-agent:0:1

Andrew Mulholland
sumber
Fedora menggunakan jalur soket default yang berbeda. Saya harus menggunakan GPG_AGENT_INFO=/run/user/$(id -u)/gnupg/S.gpg-agent:0:1sebagai gantinya.
Pawel Veselov