Ich erhalte diesen Fehler, wenn ich versuche, mit Git ein Commit durchzuführen.
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
Ich habe einen neuen Schlüssel wie unten generiert, aber es gibt immer noch den gleichen Fehler
gpg --list-keys
~/.gnupg/pubring.gpg
--------------------------------
pub 2048R/35F5FFB2 2016-04-23
uid name (New key) <[email protected]>
sub 2048R/112A8C2D 2016-04-23
Der geheime Schlüssel ist der gleiche wie oben
Ich habe dies gefunden. Generieren eines GPG-Schlüssels für das Git-Tagging und habe die Schritte befolgt, aber es funktioniert immer noch nicht, eine Idee?
Antworten:
Sie müssen den geheimen Schlüssel konfigurieren, bevor Sie ihn verwenden können.
Oder deklarieren Sie es global, wenn Sie für jedes Repository denselben Schlüssel verwenden möchten.
Quelle: Git Tools - Signieren Sie Ihre Arbeit
quelle
git config --global gpg.program gpg2
.Dies funktionierte für mich unter Windows 10 (Beachten Sie, dass ich den absoluten Pfad zu gpg.exe verwende):
Dies war der Fehler, den ich vor dem Fix erhalten habe:
quelle
secret key not available
mit VS Code und Einstellungsortgpg.exe
behoben.Was für mich funktionierte, war das Hinzufügen
Wenn Sie den vollständigen Pfad von gpg2.exe finden möchten:
quelle
gpg.exe
anstelle von tungpg2.exe
.Ich möchte all diese Antworten vervollständigen, weil ich damit viele Probleme habe.
Diese Beispiele verwenden das
--global
Flag, aber Sie können es entfernen, wenn Sie diese Dinge lokal ausführen möchten.Konfigurieren Sie den geheimen Schlüssel in git
Konfigurieren Sie das gpg-Programm für die Verwendung in git (optional).
Einige Systeme (zum Beispiel Ubuntu) können
gpg
undgpg2
gleichzeitig haben. Sie müssen angeben, was Sie verwenden möchtengpg2
GPG_TTY exportieren (optional)
Wenn Sie diesen Befehl in einer SSH-Umgebung verwenden, tritt möglicherweise der folgende Fehler auf:
Inappropriate ioctl for device
odergpg: échec de la signature : Ioctl() inapproprié pour un périphérique
. Dies kann behoben werden über:GPG-Gesang automatisch aktivieren (optional)
quelle
--unset
Flag zu diesengit config
Befehlen hinzufügen , um es zu deaktivierenIch hatte eine Situation, in der mir auf einem Windows 10-Computer dasselbe passiert ist.
Die Befehle
"C:\Program Files (x86)\GnuPG\bin\gpg.exe" --list-secret-keys --keyid-format LONG
undgpg --list-secret-keys --keyid-format LONG
wo geben mir völlig unterschiedliche Ergebnisse!Der Hauptgrund bezog sich auf frühere Antworten, jedoch in einem anderen Sinne:
Ich hoffe, dies kann jedem helfen, der über diese Nachricht stolpert und frühere Antworten lösen das Problem nicht.
quelle
Sie müssen die Variable setzen
GNUPGHOME
. Ohne diese Funktion kann GnuPG Ihre Schlüssel nicht finden.Unter Unix wird es einfach dem Pfad hinzugefügt.
Unter Windows müssen Sie die Systemsteuerung öffnen und als festlegen
quelle
GNUPGHOME
. DamitGPGHOME
funktioniert es für michIch hatte das gleiche Problem: Der Git- Name und der E-Mail- Speicher in .gitconfig unterschieden sich von denen des bereitgestellten GPG- Schlüssels. Ich habe sie geändert, um sie anzupassen, und es fing an zu funktionieren.
quelle
Verwenden
"C:\Program Files\Git\usr\bin\gpg.exe"
war die Lösung für mich.Musste kleopatra deinstallieren. Damit funktionierte es nicht.
Also, zusammenfassend;
Kleopatra ist nicht erforderlich. Verwenden Sie stattdessen die GIT-Standardeinstellung.
quelle
Möglicherweise müssen Sie Ihr eigenes Repository klonen, in dem Sie Rechte haben. Ich hatte dieses Problem, als ich das Repository einer anderen Person geklont habe.
quelle