Używam gpg-agent
do zapamiętywania i podawania GnuPG
hasła podczas budowania Debian/Ubuntu
pakietów. Ale nadal jestem zdezorientowany, jak to gpg-agent
działa. Wzywam gpg-agent
jako:
eval $(gpg-agent --daemon)
Czasami to działa. Ale przeszkadza mi to, że czasami to nie działa. Tj. Czasami proces budowania prosi o moje GnuPG
hasło raz, czasem nie, a czasem wiele razy. Wszystko to dzieje się podczas jednej sesji bash po tym, gpg-agent
jak wywołałem jak poprzednio. Tym razem brak prośby o podanie hasła nie gwarantuje, że następnym razem nie otrzymam hasła. Nadal nie wiem, dlaczego gpg
decyduje się poprosić mnie o hasło, a dlaczego tak nie jest.
Czy ci się też zdarza?
Dzięki
.authinfo.gpg
dostałem podpowiedź do użyciagpg2
, z którągpg-agent
jest związany. Tak(setq epg-gpg-program "/usr/bin/gpg2")
mi działało. Być może będziesz musiał dowiedzieć się, które aplikacje mają problem, być może wolągpg
(1).Odpowiedzi:
Dowiedz się, jak prawidłowo korzystać
gpg-agent
z http://tr.opensuse.org/SDB:Using_gpg-agentNastępnie mój
gpg-agent
demonGnuPG
prawidłowo buforuje moje hasła. W mojej konfiguracji nie było nic złego, po prostu nie wiedziałem, jak sprawdzić, czy mojeGnuPG
hasła są buforowane poprawnie, czy nie.Teraz ja robię:
Ze strony: „Zamień 0xMYKEYID na identyfikator klucza GnuPG. Podczas uruchamiania tego polecenia agent powinien otworzyć graficzne okno dialogowe hasła dwukrotnie: najpierw do podpisania lub szyfrowania (gpg -ase) (gpg -ase), a następnie do odszyfrowania lub sprawdzenia podpisu ( | gpg) Odtąd za każdym razem, gdy GnuPG jest używany (z poziomu wiersza poleceń lub osadzony w programie graficznym, takim jak KMail), hasło gpg-agenta będzie przekazywane automatycznie (aż do upływu limitu czasu lub interfejsu graficznego zostanie Zamknięte)."
Aby uniknąć wygaśnięcia buforowania, ustawiłem teraz bardzo długi limit czasu:
źródło
--write-env-file "${HOME}/.gpg-agent-info"
podczas uruchamiania gpg-agent, a następnie dodaćif [ -f "${HOME}/.gpg-agent-info" ]; then . "${HOME}/.gpg-agent-info"; export GPG_AGENT_INFO fi
do .bashrc, aby sprawdzić, czy agent jest już uruchomiony. Wydaje się, że jest to nieco czystsze rozwiązanie.WARNING: "--write-env-file" is an obsolete option - it has no effect
przynajmniej odtądApr 4 '16
. Patrz: serverfault.com/a/481174