2014-12-14 4 views
10

После установкиНет секретного ключа при подписании с мерзавцем

$ 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]> 

и положить информацию о gitconfig:

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

я получаю:

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 

Как вы можете видеть ключи на самом деле (они также появляются при запуске gpg --list-secret-keys). Если я удалю все из gitconfig и попытаюсь сделать это только с -S, я получаю ту же ошибку, что заставляет меня думать, что git передает мое имя пользователя и адрес электронной почты на gpg, а uid содержит «комментарий» (Personal), поэтому он не нашел ни одного:

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

Я не уверен, если это ошибка с мерзавцем, или это ожидаемый результат, и я что-то не хватает :).

PS.- Мое предположение, что я мог бы создать еще один uid, но без комментарий, и он должен работать.

+0

Для подписания требуется только секретный ключ. Поэтому вывод 'gpg -list-keys' не имеет значения. – michas

+0

Вы используете одного и того же пользователя для перечисления ключей и попыток подписать с git? –

ответ

8

В вашем gitconfig есть опечатка. Должно быть signaturekey, а не signinkey

+4

Это одна из причин, почему вы должны использовать 'git config' вместо ручного редактирования записей в файле' .gitconfig'. – Jubobs

+0

ARGH, это глупо. Я действительно использовал 'git config', но, похоже, я сделал это изменение вручную, не заметив этого: C. Маркировка вашего ответа, как принято, конечно. –

Смежные вопросы