2014-12-14 7 views
10

Nach der UnterzeichnungKeine geheimen Schlüssel, wenn sie mit git

Einstellung
$ gpg --list-keys 
/home/pablo/.config/gnupg/pubring.gpg 
------------------------------------- 
pub rsa4096/46F257F2 2014-09-16 [expires: 2015-09-16] 
uid  [ultimate] Pablo Olmos de Aguilera Corradini (Personal) <[email protected]> 

Und die Informationen über gitconfig setzen:

[user] 
    name = Pablo Olmos de Aguilera Corradini 
    email = [email protected] 
    signinkey = 46F257F2 
[commit] 
    gpgsign = true 

ich:

gpg: skipped "Pablo Olmos de Aguilera Corradini <[email protected]>": No secret key 
gpg: signing failed: No secret key 
error: gpg failed to sign the data 
fatal: failed to write commit object 

Wie Sie die Schlüssel tatsächlich sehen existiert (sie erscheinen auch beim Ausführen gpg --list-secret-keys). Wenn ich alles aus gitconfig entferne und versuche, es nur mit -S zu tun, bekomme ich den gleichen Fehler, der mich denken lässt, dass git meinen Benutzernamen und E-Mail an gpg weitergibt, und der uid enthält den "Kommentar" , so dass es

$ gpg --list-keys "Pablo Olmos de Aguilera Corradini <[email protected]>" 
gpg: error reading key: No public key 

ich bin mir nicht sicher, ob dies ein Fehler von git, oder es ist das erwartete Ergebnis und ich bin etwas fehlt :): nicht jeder gefunden.

PS.- Meine Vermutung ist, dass ich einen anderen uid aber ohne einen Kommentar erstellen könnte, und es sollte funktionieren.

+0

Zum Signieren wird nur der geheime Schlüssel benötigt. Daher ist die Ausgabe von 'gpg --list-keys' nicht relevant. – michas

+0

Verwenden Sie denselben Benutzer, um die Schlüssel aufzulisten und mit git zu signieren? –

Antwort

8

Es gibt einen Tippfehler in Ihrer gitconfig. Sollte sein signingkey, nicht signinkey

+4

Das ist ein Grund, warum Sie 'git config' verwenden sollten, anstatt Einträge in der' .gitconfig' Datei manuell zu bearbeiten. – Jubobs

+0

ARGH, das ist dumm. Ich habe tatsächlich 'git config' verwendet, aber es scheint, dass ich diese Änderung manuell vorgenommen habe, ohne es zu bemerken: C. Deine Antwort natürlich als angenommen markieren. –