Wie man gpg dazu bringt, gpg-agent zu finden

23

Auf Fedora 22 findet gpg den gpg-Agenten nicht:

% 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
quelle

Antworten:

36

Ein Blick auf die Versionen zeigt das Problem:

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

% gpg --version                                                               
gpg (GnuPG) 1.4.19

Die Komponenten stammen aus verschiedenen Paketen ( gnupg2-2.1.7-1.fc22.x86_64und gnupg-1.4.19-2.fc22.x86_64in meinem Fall). Die Lösung besteht darin, den gpg2 Befehl anstelle von zu verwenden gpg.

Roman Cheplyaka
quelle
1
Vielen Dank. Ich habe 30 Minuten im Internet verbracht, um dieses Zeug herauszufinden. Es stellte sich heraus, dass die meisten Dokumentationen und Anweisungen den Bruch zwischen den Versionen der Werkzeuge nicht berücksichtigen. Ich musste meine Passphrase für jeden Lauf von gpg für 20 Dateien eingeben, die ich signieren wollte. Jetzt kann ich es nur noch einmal tun. Danke noch einmal.
Don Bright
Dies ist bei Fedora 27 immer noch relevant. mit gpg2auch
aktiviert
8

Falls es für einige hilfreich ist, gpgkann 1.4 mit gpg-agent2.1 problemlos funktionieren .

Bei der Prüfung habe ich diesen Beitrag gefunden: https://lists.gnupg.org/pipermail/gnupg-devel/2014-October/029024.html

Der Agent ist kompatibel, exportiert jedoch nicht mehr die Umgebungsvariablen, die die ältere Version von gpg erwartet. Wenn Sie diese manuell einstellen, funktioniert es einfach:

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

Andrew Mulholland
quelle
Fedora verwendet einen anderen Standard-Socket-Pfad. Ich musste GPG_AGENT_INFO=/run/user/$(id -u)/gnupg/S.gpg-agent:0:1stattdessen verwenden.
Pawel Veselov