为git标记生成一个GPG密钥
我试图使用git命令行在GitHub中创build签名标记。 我使用(样本)用户名Full Name (skytreader) <fullname@gmail.com>
生成了一个GPG密钥。 完成之后,我尝试创build一个签名标记 。 但是,我得到以下错误:
gpg: skipped "full <fullname@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
我想我只需要用指定的用户名创build另一个键。 但是,input“full”这个名字, gpg
抱怨我的名字至less要有5个字符。
我如何使用这个键与GIT?
我是否改变了用户使用GPG签署我的标签的用户名,这样我就能得到至less5个字符的真实姓名?
提交者名称位于~/.gitconfig
文件中。 把这个条目改成一个真实的名字(无论如何你都要这么做)。 你可以在你最喜欢的编辑器中编辑文件,或者只发出:
git config --global user.name "<name>"
首先,您需要检查您的ID是否有gpg密钥。
$ gpg --list-key
如果你有应该出现这样的事情:
- pub 2048R / 6AB3587A 2013-05-23
- uid xxx(gpg for xxx)
- sub 2048R / 64CB327A 2013-05-23
如果没有gpg密钥。 你应该创build
$ gpg --gen-key
接下来你有这个输出:
gpg(GnuPG)2.0.14; 版权所有(C)2009自由软件基金会,这是自由软件:您可以自由更改和重新分配它。 没有担保,在法律允许的范围内。
请select你想要的密钥types:
- (1)RSA和RSA(默认)
- (2)DSA和Elgamal
- (3)DSA(仅限符号)
- (4)RSA(仅限符号)
您的select? RSA密钥的长度可能在1024到4096之间。 你想要什么密码? (2048)
请求的密钥大小是2048位
请指定密钥的有效期限。0 = key does not expire <n> = key expires in n days <n>w = key expires in n weeks <n>m = key expires in n months <n>y = key expires in n years
密钥是有效的? (0)
密钥根本不会过期
它是否正确? (y / N)yGnuPG needs to construct a user ID to identify your key. Real name: xxx Email address: xxx@example.com Comment: gpg for xxx You selected this USER-ID: "xxx(gpg for xxx) <xxx@example.com>" Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O You need a Passphrase to protect your secret key. can't connect to `/xxx/.gnupg/S.gpg-agent': No such file or directory We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy.
如果你有一个已经生成的密钥,你可以告诉git使用该特定的密钥,而不用担心你的git用户ID(名字+电子邮件)和GPG密钥的ID之间的匹配。 user.email
您应该让您的git user.email
匹配您的GPG密钥上的某个电子邮件,以便签署标签或提交对其他用户有用。
要在您的计算机上设置全局使用的密钥,请使用以下命令设置您的git全局configuration:
git config --global user.signingkey 6AB3587A
或者,您可以只为当前的存储库设置user.signingkey
:
git config user.signingkey 6AB3587A