Git GPG错误签名标签

时间:2013-06-01 20:11:48

标签: git gnupg

在谈到Git时,我有点像新秀。所以我决定阅读Scott Chacon的Pro Git。 BTW伟大的书,强烈推荐它。

无论如何得到了关于签名标签的部分。 要使用GPG对标签进行签名,您必须设置私钥。 但是,当我跑:

git tag -s v1.6 -m "my signed 1.6 tag"

我得到了以下内容:

C:\Users\Name\Desktop\git>git tag -s v1.6 -m "my signed 1.6 tag"
gpg: error loading `iconv.dll': The specified module could not be found.

gpg: please see http://www.gnupg.org/download/iconv.html for more information
gpg: skipped "Name <name@gmail.com>": secret key not available
gpg: signing failed: secret key not available
error: gpg failed to sign the data
error: unable to sign the tag

所以,我完成了错误消息告诉我的操作,然后转到链接并按照说明进行操作。我将iconv.dll复制到包含gpg.exe(\ Git \ bin)的文件夹中。再次执行命令并得到:

C:\Users\Name\Desktop\git>git tag -s v1.6 -m "my signed 1.6 tag"
gpg: skipped "Name <name@gmail.com>": secret key not available
gpg: signing failed: secret key not available
error: gpg failed to sign the data
error: unable to sign the tag

编辑:

当我尝试列出我的密钥时,我收到此错误???

Name@NAME-PC ~
$ gpg --list-secret-keys
gpg: keyblock resource `c:/Users/Name/.gnupg\secring.gpg': file open error
gpg: keyblock resource `c:/Users/Name/.gnupg\pubring.gpg': file open error
gpg: fatal: c:/Users/Name/.gnupg: directory does not exist!
secmem usage: 0/0 bytes in 0/0 blocks of pool 0/32768

1 个答案:

答案 0 :(得分:7)

您可以使用gpg GUI(例如gpg4win),this tutorial之后,或者(更新)官方gpg4win文档“Gpg4win for Novices初始化您的gnupg环境(密钥) ”

private key creation

请注意,此blog post添加了以下警告:

  

我安装了Gpg4win,它安装了一个很好的GUI来管理密钥和GPG命令行界面   我对该过程的无知很明显,因为我一再尝试使用GUI(GNU Privacy Assistant - 密钥管理器)来创建我的密钥。 该GUI似乎可以创建有效的密钥,但无论何时存储相关的密钥部件文件都不是GPG命令行期望找到它们的地方

(注意:可能在C:\Users\Name\AppData\Roaming\gnupg上,目录名为gnupg而不是.gnupg

  

相反,请务必使用命令行客户端。从:

开始
gpg --gen-key
  

如果密钥创建失败,您可能需要手动创建目录c:users<USER>.gnupg,GPG显然不会单独执行

cd C:\Users\Name 
mkdir .gnupg
xcopy C:\Users\Name\AppData\Roaming\gnupg .gnupg
  

我一路上看到的错误是

gpg: no writable public keyring found
  

signing failed: secret key not available

注意:一旦您的gnupg到位,如果您仍然有错误消息,请执行add the the (gnupg) key-id you want to use when signing your tag

git tag -u 'key-id' -s -m "some comment" some-tag