Jak mieć inne hasło dla podklucza gpg?

16

Muszę zautomatyzować proces wdrażania, a narzędzie automatycznie podpisze artefakty wydania. Mój brelok ma klucz podstawowy, którego używam tylko do tworzenia podkluczy, i dwa podklucze. Jeden podklucz do podpisywania i jeden do szyfrowania.

Obecnie istnieje jedna fraza hasła dla wszystkich kluczy. Nie chcę określać tego hasła w pliku konfiguracyjnym, ponieważ ryzykowałoby to również kluczem podstawowym.

Pomyślałem więc, że ustawię inne hasło dla podklucza, wykonując:

$ gpg --edit-key [subkey-id]
gpg> passwd
gpg> save

Ale to zmieniło hasło również dla innych kluczy.

Jak ustawić osobne hasło dla poszczególnych kluczy?

Kshitiz Sharma
źródło

Odpowiedzi:

14

Konfigurowanie indywidualnych haseł dla podkluczy nie jest możliwe w GnuPG. Istnieje jednak obejście, które w tym przypadku wygląda nawet na pomysł dobrej praktyki:

  1. Wyeksportuj wybrany podklucz (w tym przykładzie podklucz ma identyfikator 0xDEADBEEF). Nie zapomnij wykrzyknika, upewnia się, że GnuPG faktycznie działa z samym podkluczem, a nie z kluczem podstawowym, do którego należy!

    gpg --export-secret-subkeys 0xDEADBEEF! >subkeys.pgp
    

    Do podklucza będzie dołączony publiczny klucz podstawowy i prywatny „klucz podstawowy”, ale nie sam prywatny klucz podstawowy.

  2. Zaimportuj podklucz do innego katalogu domowego GnuPG. W tym przykładzie oczekuje się, że użytkownik znajduje się w katalogu głównym projektu i ma folder etczawierający takie rzeczy, jak ten klucz.

    gpg --homedir ./etc/gnupg --import subkeys.pgp
    
  3. Zmień hasło oddzielonego podklucza.

    gpg --homedir ./etc/gnupg --edit-key 0xDEADBEEF
    
  4. Zamiast używać „normalnego” breloka, zawsze korzystaj z oddzielnego katalogu GnuPG, jak wspomniano powyżej.

Alternatywnie możesz rozważyć utworzenie klucza projektu, który podpisujesz własnym kluczem. Może to mieć tę zaletę, że inni współautorzy / użytkownicy mogą również podpisać klucz (a tym samym poświadczyć, że rzeczywiście jest to klucz użyty do projektu), a przekazanie projektu może być łatwiejsze na wypadek, gdyby ktoś przejął konserwację.

Jens Erat
źródło
1
To nie działa z GnuPG 2.2.4. Nie powie: „Potrzebujesz do tego tajnego klucza”. Bardzo smutne: „(
steinybot,
Więc muszę używać kluczy gpg bez hasła do automatycznego podpisywania repo?
SuperSandro2000,
Nie, możesz również wstępnie buforować hasło za pomocą gpg-agent. Spójrz na gpg-preset-passphrase.
Jens Erat,
5

Bardzo nieaktualne (2013) archiwum poczty gnupg.org wyjaśnia niezręczne obejście tworzenia oddzielnego hasła do podklucza .
Oznacza to, że ograniczenie nie mieści się w strukturze danych zestawu kluczy (tj. Grupowanie podkluczy głównych), ale jedynie w interfejsie oprogramowania do konstruowania i modyfikowania zestawu kluczy.

Cytat z referencji:

Cześć,

czy możliwe jest posiadanie klucza głównego i kilku podkluczy, przy czym podklucze mają inne (np. krótsze) hasło niż klucz główny?

Prawdopodobnie szukasz klucza głównego offline (patrz - podklucze -export-secret-). Ale odpowiedź brzmi: tak. gpg-agent nie dba o połączenie kluczy. Kilkakrotnie prosi Cię nawet o to samo hasło (dla różnych składników tego samego klucza).

Ale GnuPG nie obsługuje tego bezpośrednio.

1) Wyeksportuj tajny klucz (--export-secret-keys bez --armor)

2) zmień hasło

3) Eksportuj ponownie (oczywiście do innego pliku)

4) Użyj gpgsplit na obu plikach (w różnych katalogach). Wynik wygląda następująco:

000001-005.secret_key 000002-013.user_id 000003-002.sig 000004-007.secret_subkey 000005-002.sig

5) Teraz łączysz składniki dwóch grup: mkdir połączone mv a / 000001 * a / 000002 * a / 000003 * połączone / mv b / 000004 * b / 000005 * połączone / cd połączone / cat *> different_passphrases.gpg

6) Usuń klucz z zabezpieczenia: --delete-secret-key

7) Zaimportuj nowy: gpg --import different_passphrases.gpg

Hauke ​​Laging

Nie potwierdziłem osobiście tej operacji - po prostu zgłaszam to, co przeczytałem.

Brak specyfikacji i dyskusji w dokumentacji GnuPG dotyczącej tego ważnego tematu jest rozczarowujący.

Craig Hicks
źródło