为git标记生成GPG密钥

为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

我正在尝试使用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
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
如果有,则应显示如下内容:

  • pub 2048R/6AB3587A 2013-05-23
  • uid xxx(xxx的gpg)
  • sub 2048R/64CB327A 2013-05-23
  • 如果没有gpg密钥。您应该创建

    $ gpg --gen-key
    
    接下来,您将获得以下输出:

    gpg(GnuPG)2.0.14;版权所有(C)2009免费软件基金会。 这是自由软件:您可以自由更改和重新发布它。 在法律允许的范围内,不存在任何担保

    请选择所需的密钥类型:

  • (1) RSA和RSA(默认)
  • (2) DSA和Elgamal
  • (3) DSA(仅限签名)
  • (4) RSA(仅限签名)
  • 你的选择?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=密钥未过期
    =密钥在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