2014-12-14 14 views
10

Sau khi thiết lậpKhông có khóa bí mật khi ký hợp đồng với git

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

Và đặt các thông tin trên gitconfig:

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

tôi nhận được:

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 

Như bạn có thể thấy các phím thực tồn tại (chúng cũng xuất hiện khi chạy gpg --list-secret-keys). Nếu tôi xóa mọi thứ khỏi gitconfig và cố gắng làm điều đó chỉ với -S, tôi gặp lỗi tương tự, điều này khiến tôi nghĩ rằng git đang chuyển tên người dùng và email của tôi đến gpg và uid bao gồm "nhận xét" (Personal), vì vậy, không tìm thấy bất kỳ:

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

Tôi không chắc đây có phải là lỗi từ git hay là kết quả mong đợi và tôi thiếu điều gì đó :).

PS - Tôi đoán là tôi có thể tạo một số khác uid nhưng mà không cần nhận xét và nó sẽ hoạt động.

+0

Để chỉ ký khóa bí mật là cần thiết. Do đó, đầu ra của 'gpg --list-keys' không liên quan. – michas

+0

Bạn có đang sử dụng cùng một người dùng để liệt kê các khóa và cố gắng ký bằng git không? –

Trả lời

8

Có lỗi đánh máy trong gitconfig của bạn. Phải là mã khóa, không phải signinkey

+4

Đó là một lý do tại sao bạn nên sử dụng 'git config' thay vì chỉnh sửa thủ công các mục trong tệp' .gitconfig'. – Jubobs

+0

ARGH, thật ngu ngốc. Tôi thực sự đã sử dụng 'git config', nhưng có vẻ như tôi đã thực hiện thay đổi đó bằng tay mà không nhận thấy nó: C. Đánh dấu câu trả lời của bạn là chấp nhận tất nhiên. –

Các vấn đề liên quan