Jak zmusić gpg do znalezienia gpg-agent

23

W Fedorze 22 gpg nie znajduje 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
źródło

Odpowiedzi:

36

Przegląd wersji ujawnia problem:

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

% gpg --version                                                               
gpg (GnuPG) 1.4.19

Komponenty pochodzą z różnych pakietów ( gnupg2-2.1.7-1.fc22.x86_64i gnupg-1.4.19-2.fc22.x86_64w moim przypadku). Rozwiązaniem jest użycie gpg2 polecenia zamiast gpg.

Roman Cheplyaka
źródło
1
dzięki. Spędziłem 30 minut w Internecie, próbując rozgryźć te rzeczy ... okazuje się, że większość dokumentacji i instrukcji nie bierze pod uwagę zepsucia między wersjami narzędzi. musiałem wpisać moje hasło dla każdego uruchomienia gpg na 20 plikach, które chciałem podpisać, teraz mogę to zrobić tylko raz. dzięki jeszcze raz.
don bright
jest to nadal aktualne w przypadku Fedory 27; użycie gpg2umożliwia także integrację gnome
Alex Gyoshev
8

Jeśli jest to pomocne dla niektórych, gpg1.4 może dobrze działać z gpg-agent2.1.

Patrząc na to, znalazłem ten post: https://lists.gnupg.org/pipermail/gnupg-devel/2014-October/029024.html

Agent jest kompatybilny, ale nie eksportuje już zmiennych środowiskowych, których oczekuje starsza wersja gpg. Jeśli ustawisz je ręcznie, będzie to po prostu działać:

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

Andrew Mulholland
źródło
Fedora używa innej domyślnej ścieżki gniazda. Musiałem GPG_AGENT_INFO=/run/user/$(id -u)/gnupg/S.gpg-agent:0:1zamiast tego użyć .
Paweł Veselov,