Jak zmienić domyślny klucz dla danego identyfikatora użytkownika w GnuPG?

2

Mam dwa klucze do mojego głównego identyfikatora użytkownika: stary i dłuższy, który wygenerowałem niedawno. Nie używam już starego. Ustawiam klucz domyślny na nowszy, korzystając z default-keyopcji w ~/.gnupg/gpg.conf.

Jednak niektóre narzędzia zastępują ustawienie domyślne, na przykład dzwonienie git tag -s, które dzwoni gpg -bsau DEFAULT_COMMITTER_EMAIL_ADDRESSpod maską. (Jest to rozsądne, ponieważ mój domyślny adres e-mail osoby zatwierdzającej może nie zgadzać się z moim głównym identyfikatorem użytkownika dla gpg.) Wydaje się, że GnuPG używa pierwszego znalezionego klucza, który odpowiada identyfikatorowi użytkownika, zwykle najstarszego.

Mogę to naprawić w mojej konfiguracji git, ustawiając tam również domyślny klucz, ale wolę nie mieć tego duplikatu (ponieważ w moim przypadku wszystkie tożsamości są takie same).

Udało mi się to obejść, usuwając starsze klucze z mojego kluczy, a następnie dodając je ponownie (co wydaje się dodawać je na końcu). Następnie mój najnowszy (preferowany, domyślny) klucz pojawia się jako pierwszy gpg --list-secret-keys, a zatem jest to pierwsze dopasowanie zwrócone dla mojego identyfikatora użytkownika.

Czy jest jakiś sposób na uniknięcie tego obejścia (które musiałbym powtarzać za każdym razem, gdy generuję nowy klucz)?

Reuben Thomas
źródło

Odpowiedzi:

0

Nie ma takiej opcji konfiguracji dla GnuPG. Zdefiniowanie odrębnego klucza (na podstawie odcisku palca lub co najmniej długiego identyfikatora klucza spowodowanego atakami kolizyjnymi ) jest rozsądną rzeczą do zrobienia: złośliwi użytkownicy mogą również wysyłać ci klucze prywatne dla identyfikatorów użytkowników, których gpg --importoczekujesz od jakiegoś klucza publicznego i zostać wybranym niezauważony.

Zatem radzenie sobie z większą liczbą podstawowych kluczy OpenPGP dla tego samego identyfikatora użytkownika i ich regularna wymiana może również nie być najlepszą praktyką (rozważ dyskusję w „Ile kluczy OpenPGP powinienem zrobić?” ). Nie tylko myli innych („Który z tych kluczy użyć?”), Ale także zrywa z wszelkimi certyfikatami i twoją integracją z zaufaną siecią OpenPGP za każdym razem, gdy rzucisz klucz podstawowy. Zastanów się, czy trzymanie za pomocą jednego (wysokiego bezpieczeństwa, może nawet przechowywanego offline) i zmieniających się podkluczy można dostosować do Twojego przypadku użycia - przypomina to, co można nazwać najlepszą praktyką w konfiguracjach kluczy OpenPGP (chociaż jest miejsce na dyskusję i zmiany, oczywiście).

Jens Erat
źródło
Dziękuję za odpowiedź, ale niestety nie rozumiem. Po pierwsze, mam już różne klucze do danego identyfikatora użytkownika; dlaczego wyklucza to możliwość określenia, który z nich jest wymieniony jako pierwszy? Po drugie, nie używam regularnie więcej niż jednego klucza. Stworzyłem nowy dłuższy niż mój stary, ale mój stary wciąż jest wymieniony jako pierwszy i dlatego został wybrany przez git jako domyślny.
Reuben Thomas
Próbowałem wyjaśnić pytanie.
Reuben Thomas
Istota mojej odpowiedzi nie zmieni się: w GnuPG nie ma możliwości zdefiniowania preferencji, którego klucza użyć dla którego identyfikatora użytkownika, a zalecenie przypięcia klucza poprzez zdefiniowanie odcisku palca pozostaje takie samo: możesz albo wybrać identyfikator użytkownika lub klucz po identyfikatorze, ale nie połączenie obu. Jedyną alternatywą byłoby udostępnienie drugiego katalogu domowego GnuPG tylko z określonym kluczem i uruchomienie oddzielnych instancji gpg-agent, aby można było wybrać klucz, wykluczając wszystkie inne, a następnie wybrać identyfikator użytkownika za pomocą --local-useropcji.
Jens Erat,