为git标记生成GPG密钥
我正在尝试使用git命令行在GitHub中创建签名标记。我生成了一个带有(示例)用户名为git标记生成GPG密钥,git,gnupg,Git,Gnupg,我正在尝试使用git命令行在GitHub中创建签名标记。我生成了一个带有(示例)用户名全名(skytreader)的GPG密钥。这样做之后,我尝试创建一个新的。但是,我得到以下错误: gpg: skipped "full <fullname@gmail.com>": secret key not available gpg: signing failed: secret key not available error: gpg failed to sign the data erro
全名(skytreader)
的GPG密钥。这样做之后,我尝试创建一个新的。但是,我得到以下错误:
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
gpg:跳过“完整”:密钥不可用
gpg:签名失败:密钥不可用
错误:gpg无法对数据进行签名
错误:无法对标记进行签名
我想我只需要用指定的用户名创建另一个密钥。但是,当输入名称“full”时,gpg
抱怨我的名字应该至少有5个字符长
如何在git中使用此密钥
我是否更改git用于使用GPG签名我的标记的用户名,以便获得至少5个字符长的真实名称?提交者名称位于您的
~/.gitconfig
文件中。将该条目更改为实名(无论如何,这也是您希望提交的方式)。您可以在最喜爱的编辑器中编辑该文件,或只发布:
git config --global user.name "<name>"
git config--global user.name“”
首先,您需要检查您的ID是否有gpg密钥
$ gpg --list-key
如果有,则应显示如下内容:
$ gpg --gen-key
接下来,您将获得以下输出:
gpg(GnuPG)2.0.14;版权所有(C)2009免费软件基金会。
这是自由软件:您可以自由更改和重新发布它。
在法律允许的范围内,不存在任何担保
请选择所需的密钥类型:
请求的密钥大小为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=密钥未过期
=密钥在n天后过期
w=密钥在n周后过期
m=密钥在n个月后过期
y=密钥在n年后过期
密钥对有效吗?(0)密钥根本没有过期
这是正确的吗?(是/否)是
GnuPG需要构造一个用户ID来识别您的密钥。
真名:xxx
电邮地址:xxx@example.com
注释:xxx的gpg
您选择了此用户ID:
“xxx(xxx的gpg)”
更改姓名、通知、电子邮件或(O)kay/(Q)uit?O
您需要密码短语来保护您的密钥。
无法连接到“/xxx/.gnupg/S.gpg-agent”:没有这样的文件或目录
我们需要生成大量随机字节。表演是个好主意
其他一些操作(在键盘上键入,移动鼠标,利用
(i)在主生成期间;这就是随机数
发电机有更好的机会获得足够的熵。
如果您已经生成了一个密钥,您可以告诉git使用该特定密钥,而不必担心您的git用户ID(名称+电子邮件)和GPG密钥ID之间的匹配。您应该让git
user.email
将GPG密钥上的一封电子邮件与您的签名标记或提交匹配,以便对其他用户有用
要在计算机上设置全局使用的密钥,请使用以下命令设置git全局配置:
git config --global user.signingkey 6AB3587A
或者,您可以仅为当前存储库设置user.signingkey
:
git config user.signingkey 6AB3587A
再一个。是否可以在我的gitconfig中包含“(skytreader)”部分(这样我就不必生成另一个GPG密钥)?它可以是任何你想要的。实际上,您可以使用
-u
或--local user
标志来指定特定的
(它也可以通过git config--global user.signingkey
进行全局设置。我将注释字段留空以使其对我有效,因为我的gitconfig中没有匹配项。我更喜欢git config--local user.signingkey 6AB3587A
,因为它位于公共计算机/服务器上。
git config user.signingkey 6AB3587A