ssh-agent
jest bardzo łatwy w użyciu, uruchamiam go i dodam klucze za pomocą ssh-add keyfile
. Po zabiciu procesu ssh-agent
wszystkie pliki zniknęły.
Jak mogę uzyskać takie samo zachowanie gpg-agent
? Najbliższym programem, jaki znalazłem, był gpg-preset-passphrase
. Ale patrząc na stronę podręcznikagpg-agent
, wydaje się, że tworzony jest katalog do przechowywania kluczy prywatnych.
Mogę się mylić, więc zastanawiam się, jak mogę skonfigurować gpg-agent
w taki sposób, aby nie były tworzone żadne pliki / katalogi? Jeśli nie jest to możliwe, mile widziane byłyby także inne sugestie, aby wykonać gpg-agent
pracę typu ssh-agent
+ ssh-add
. Nie szukam rozwiązań GUI takich jak Seahorse.
gpg-connect-agent
?gpg-preset-passphrase
. Uciekłemgpg-connect-agent
, dostałem powłokę i wykonałem polecenie , asetkey IDOFMYPRIVATEKEYHERE
następniepreset_passphrase
id spowodowało „ERR 67108924 Nieobsługiwany <GPG-agent> - brak --allow-preset-Odpowiedzi:
Postanowiłem to rzucić okiem ponownie i dowiedziałem się, jak to działa. GPG używa terminologii „cache” do przechowywania haseł. Na maksymalny czas przechowywania można nałożyć dwa ograniczenia:
Ponadto istnieją dwie odmiany dla obu ograniczeń, jedna dla kluczy GPG i jedna dla kluczy SSH (jeśli obsługa była włączona).
Odpowiednie wpisy strony podręcznika z
gpg-agent(1)
:Hasła są zawsze buforowane (w pamięci, a nie na dysku! Zweryfikowane za pomocą repozytorium git
$HOME
), więc nie ma wyraźnej potrzebyssh-add
. Na przykład podpisywanie danych fikcyjnych już wyzwala pamięć podręczną:Aby wprowadzić trwałe zmiany w ustawieniach pamięci podręcznej gpg-agent, edytuj ~ / .gnupg / gpg-agent.conf` i dodaj coś takiego:
Próbowałem włączyć obsługę agenta SSH przez określenie
enable-ssh-support
, ale powoduje to, że gpg-agent prosi o inny klucz do zaszyfrowania klucza, a następnie przechowuje Twój klucz prywatny~/.gnupg/private-keys.d/
. Nie idź dla mnie, będę więc trzymał się podwójnego podejścia ssh-agent / gpg-agent.Kilka porad bonusowych:
max-cache-ttl-ssh
Podczas dodawania klucza można określić ekwiwalent agenta SSH , na przykład:ssh-add -t 600 ~/.ssh/id_rsa
Aby zapobiec przechowywaniu hasła GPG w agencie, wyłącz agenta. W nowszych wersjach GPG opcja
--no-use-agent
jest ignorowana, ale można zapobiec użyciu agenta, usuwając powiązaną zmienną środowiskową. Niektóre sposoby:źródło
gpg-agent
aktywny? (Sprawdź listę procesów, na przykład za pomocąps u -C gpg-agent
). Czy limit czasu pamięci podręcznej jest odpowiednio ustawiony? Jeśli używasz go do podpisywania (w przeciwieństwie do uwierzytelniania (SSH)), czyignore-cache-for-signing
opcja nie jest ustawiona?