Otrzymuję ten błąd podczas próby zatwierdzenia za pomocą Git.
gpg: skipped "name <[email protected]>": secret key not available
gpg: signing failed: secret key not available
error: gpg failed to sign the data
fatal: failed to write commit object
Wygenerowałem nowy klucz, jak poniżej, ale nadal daje ten sam błąd
gpg --list-keys
~/.gnupg/pubring.gpg
--------------------------------
pub 2048R/35F5FFB2 2016-04-23
uid name (New key) <[email protected]>
sub 2048R/112A8C2D 2016-04-23
Tajny klucz jest taki sam jak powyżej
Znalazłem to Generowanie klucza GPG do tagowania git i postępowałem zgodnie z instrukcjami, ale nadal nie działa, jakiś pomysł?
Odpowiedzi:
Musisz skonfigurować tajny klucz przed jego użyciem.
Lub zadeklaruj to globalnie, jeśli chcesz używać tego samego klucza dla każdego repozytorium.
Źródło: Git Tools - Signing Your Work
źródło
git config --global gpg.program gpg2
.To zadziałało dla mnie w systemie Windows 10 (zwróć uwagę, że używam bezwzględnej ścieżki do gpg.exe):
To był błąd, który otrzymałem przed naprawą:
źródło
secret key not available
z VS Code i ustawieniegpg.exe
lokalizacji rozwiązało go.U mnie zadziałało dodawanie
Jeśli chcesz znaleźć pełną ścieżkę do pliku gpg2.exe:
źródło
gpg.exe
zamiastgpg2.exe
.Lubię uzupełniać wszystkie te odpowiedzi, ponieważ mam z tym wiele problemów.
Te przykłady używają
--global
flagi, ale możesz ją usunąć, jeśli chcesz to zrobić lokalnie.Skonfiguruj tajny klucz w git
Skonfiguruj program witch gpg do użycia w git (opcjonalnie)
Niektóre systemy (Ubuntu dla exemple) mogą mieć
gpg
igpg2
w tym samym czasie. Musisz określić, że będziesz używaćgpg2
Eksportuj GPG_TTY (opcjonalnie)
Jeśli użyjesz tej komendy w środowisku ssh, może wystąpić następujący błąd:
Inappropriate ioctl for device
lubgpg: échec de la signature : Ioctl() inapproprié pour un périphérique
. Można to naprawić poprzez:Automatyczne włączanie śpiewu GPG (opcjonalnie)
źródło
--unset
flagę do tychgit config
poleceń, aby je wyłączyćMiałem sytuację, w której to samo działo się ze mną na komputerze z systemem Windows 10.
Polecenia
"C:\Program Files (x86)\GnuPG\bin\gpg.exe" --list-secret-keys --keyid-format LONG
igpg --list-secret-keys --keyid-format LONG
gdzie dają mi kompletne różne wyniki!Główny powód był związany z poprzednimi odpowiedziami, ale w innym sensie:
Mam nadzieję, że może to pomóc każdemu, kto natknie się na tę wiadomość, a poprzednie odpowiedzi nie rozwiązują jego problemu.
źródło
Musisz ustawić zmienną
GNUPGHOME
. Bez tego GnuPG nie będzie w stanie znaleźć twoich kluczy.W systemie Unix po prostu dodaje go do ścieżki.
W systemie Windows musisz otworzyć panel sterowania i ustawić go jako
źródło
GNUPGHOME
. UGPGHOME
mnie to działaMiałem ten sam problem, że nazwa gita i sklep e-mail w .gitconfig różniły się od tych z dostarczonego klucza gpg. Zmieniłem je, żeby pasowały i zaczęło działać.
źródło
Użycie
"C:\Program Files\Git\usr\bin\gpg.exe"
było dla mnie rozwiązaniem.Musiałem odinstalować Kleopatrę. Z tym to nie działało.
Podsumowując;
Nie ma potrzeby kleopatry, zamiast tego użyj domyślnego GIT.
źródło
Może musisz sklonować własne repozytorium, do którego masz prawa. Miałem ten problem, gdy sklonowałem repozytorium innej osoby.
źródło