相关疑难解决方法(0)

git commit签名失败:密钥不可用

尝试使用Git提交时出现此错误.

gpg: skipped "name <name@mail.com>": secret key not available
gpg: signing failed: secret key not available
error: gpg failed to sign the data
fatal: failed to write commit object
Run Code Online (Sandbox Code Playgroud)

我已经生成了一个如下所示的新密钥,但它仍然会产生相同的错误

gpg --list-keys
~/.gnupg/pubring.gpg
--------------------------------
pub   2048R/35F5FFB2 2016-04-23
uid                  name (New key) <name@mail.com>
sub   2048R/112A8C2D 2016-04-23
Run Code Online (Sandbox Code Playgroud)

密钥与上述相同

我发现这 为git标记生成一个GPG密钥并按照步骤但它仍然不起作用,任何想法?

git

64
推荐指数
9
解决办法
3万
查看次数

生成用于git标记的GPG密钥

我正在尝试使用git命令行在GitHub中创建签名标签.我用(样本)用户名生成了一个GPG密钥Full Name (skytreader) <fullname@gmail.com>.完成后,我尝试创建一个签名标签.但是我收到以下错误:

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
Run Code Online (Sandbox Code Playgroud)

我想我只需要用指定的用户名创建另一个密钥.但是,输入名称"full",gpg抱怨我的名字至少应该是5个字符.

如何在git中使用此密钥?

我是否更改了git用于使用GPG签署我的标签的用户名,以便获得至少5个字符长的真实姓名?

git gnupg

39
推荐指数
3
解决办法
2万
查看次数

如何在像IntelliJ这样的IDE中签署git提交?

问题如何在Windows上使用IntelliJ等IDE进行git提交?

如果你有兴趣,请阅读我在这里尝试的内容:

我主要跟随Github的指南.我确保在更改配置文件后不要忘记重启bash/IntelliJ.

  1. 生成新的GPG密钥对
  2. 将GPG密钥添加到我的GitHub帐户
  3. 将经过验证的(通过GitHub)电子邮件与我的GPG密钥相关联,我确保我的电子邮件.gitconfig是相同的.
  4. 告诉Git关于我的GPG密钥
  5. 与GPG签署提交并确认它已在Github上进行了Verfied.
  6. 从同一页面,我设置默认签名的提交git config --global commit.gpgsign true(我正在使用git 2.12).我做了一个新的提交并验证它已签名git verify-commit HEAD
  7. 当我尝试在IntelliJ中提交时,我gpg: cannot open tty 'no tty'发现IntelliT在尝试签名提交(GPG)并添加no-tty到我的C:\Users\username\.gnupg\gpg.conf文件并重新启动时未能提交更改.

  8. 然后我得到了gpg: Sorry, no terminal at all requested - can't get input似乎合理的错误,因为我刚添加了与没有终端有关的选项.像gpg:抱歉,没有终端请求 - 无法获得输入说解决方案是删除no-tty我希望不适用于我的情况.

  9. 第一个问题中的其他答案建议use-agentgpg.conf文件中添加,这会导致额外的错误gpg: gpg-agent is not available in this session.等等,也许我需要设置gpg-agent.

  10. 我能找到的最佳Windows指南是Archlinux wiki(是的,右).它指定添加到C:/Users/username/.gnupg/gpg-agent.conf …

git gnupg intellij-idea

19
推荐指数
3
解决办法
6441
查看次数

gpg:跳过"XXBDXX4E":密钥不可用.gpg:签名失败:密钥不可用

我遵循这个教程:https://help.github.com/articles/signing-commits-using-gpg/

我这样做的时候会尝试签名:https: //github.com/spring-guides/tut-spring-boot-oauth2/commit/824f418ab9d04114b14a90f7c19b4b8d6dda67b7

在此输入图像描述

但是错误:

C:\Users\Administrator\Desktop\foo\test_gpg>git commit -m "test"
gpg: skipped "DABDD34E": secret key not available
gpg: signing failed: secret key not available
error: gpg failed to sign the data
fatal: failed to write commit object
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述 在此输入图像描述 在此输入图像描述 在此输入图像描述

我的配置:

C:\Users\Administrator\Desktop\foo\test_gpg>git config --list --show-origin
file:"C:\\ProgramData/Git/config"       core.symlinks=false
file:"C:\\ProgramData/Git/config"       core.autocrlf=true
file:"C:\\ProgramData/Git/config"       core.fscache=true
file:"C:\\ProgramData/Git/config"       color.diff=auto
file:"C:\\ProgramData/Git/config"       color.status=auto
file:"C:\\ProgramData/Git/config"       color.branch=auto
file:"C:\\ProgramData/Git/config"       color.interactive=true
file:"C:\\ProgramData/Git/config"       help.format=html
file:"C:\\ProgramData/Git/config"       http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
file:"C:\\ProgramData/Git/config"       diff.astextplain.textconv=astextplain
file:"C:\\ProgramData/Git/config"       rebase.autosquash=true
file:"C:\\Program Files\\Git\\mingw64/etc/gitconfig"    credential.helper=manager
file:C:/Users/Administrator/.gitconfig  user.name=donhuvy
file:C:/Users/Administrator/.gitconfig  user.email=donhuvy@hotmail.com
file:C:/Users/Administrator/.gitconfig  user.signingkey=DABDD34E
file:C:/Users/Administrator/.gitconfig  commit.gpgsign=true
file:C:/Users/Administrator/.gitconfig …
Run Code Online (Sandbox Code Playgroud)

git github

5
推荐指数
1
解决办法
2555
查看次数

禁用每次提交的输入密码

1.总结

我不能每次都禁用输入密码,我如何进行提交。


2.环境

  • Windows 10企业版LTSB 64位EN,
  • git 2.16.2.windows.1,
  • gpg-agent(GnuPG)2.2.4,
  • gpg4win 3.0.3。

3.复制步骤

我安装并设置了Gpg4win吗?我移到带有.git子文件夹的文件夹?

  • git add .
  • git commit -m "Any description"

4.预期行为

成功签署的提交,无需输入密码。


5.实际行为

我进入窗口,在这里我需要输入密码:

输入密码

pinentry-qt

请输入密码以解锁OpenPGP密钥:

每次提交时,我都需要输入密码。

???? exclude:两次提交之间的间隔时间。


6.没有帮助

我发现我的USERPROFILE文件夹- C:\Users\SashaChernykh- .gnupg\gpg-agent.conf文件。我尝试将no-ttybatchno-use-agent行添加到此文件:

no-tty
batch
no-use-agent
Run Code Online (Sandbox Code Playgroud)

我仍然得到实际的行为,这不是预期的。


7.不提供

  1. 请不要提供我每次必须输入密码的信息;
  2. 或者我可以进行未签名的提交;
  3. 我可以在文件中为default-cache-ttlmax-cache-ttl参数设置较大的值C:\Users\SashaChernykh\.gnupg\gpg-agent.conf,但不能禁用密码输入。

git gnupg git-sign gpg-agent

4
推荐指数
1
解决办法
1323
查看次数

标签 统计

git ×5

gnupg ×3

git-sign ×1

github ×1

gpg-agent ×1

intellij-idea ×1