相关疑难解决方法(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万
查看次数

尝试签名提交时,IntelliJ无法提交更改(GPG)

我一直在设置我的开发环境,所以当我创建一个提交时,它会自动由GPG签名.我在这里关注了Githubs的文档:https://help.github.com/categories/gpg/ .

我试图使用IntelliJ的git接口来创建一个提交,但它始终失败并出现此错误.

gpg: cannot open `/dev/tty`: Device not configured
error: gpg failed to sign the data
fatal: failed to write commit object
Run Code Online (Sandbox Code Playgroud)

我直接从我的终端使用git时没有遇到这个错误,我发现有人遇到类似问题的问题(使用Source Tree)并且提到了一些关于GUI没有弹出来输入密码的问题.我假设这与该问题类似.

我该如何解决这个问题呢?

git github gnupg intellij-idea

19
推荐指数
1
解决办法
3519
查看次数

在Windows上为Git配置GPG

我安装了Git for Windows,包括Windows 10和Gpg4win上的Git Bash.默认情况下,我必须将我通过Kleopatra创建的所有密钥重新导入到Git Bash中内置的GPG版本中,并且它不允许我设置代理.我需要做的是自动唱歌,这样我不需要每次都输入密码,而只是在给定的时间段内第一次输入密码.怎么可能?

我尝试按照本教程,但gpg2在Git Bash中执行时不使用正确的字符集,因此它无法识别包含非ASCII字符的键.

有什么方法可以解决这个问题吗?在Windows上使用GGP与Git签名的最佳方法是什么?

git bash gnupg pgp character-encoding

17
推荐指数
2
解决办法
7927
查看次数

gpg:跳过"N":密钥不可用

1.总结

我无法开始使用Gpg4win.


2.预期的行为

成功提交.


3.实际行为

SashaChernykh@DESKTOP-EEOT0TN D:\SashaGitHub
$ git commit -m "[Test] gpg4win"
gpg: skipped "DBA8E7A2": 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)

4.重现的步骤

1套

我安装了Gpg4win →我在这里设置了Gpg4win ,这个答案是:

SashaChernykh@DESKTOP-EEOT0TN D:\SashaGitHub
$ gpg --list-key
gpg: keyring `C:/Users/SashaChernykh/AppData/Roaming/gnupg/pubring.gpg' created
gpg: C:/Users/SashaChernykh/AppData/Roaming/gnupg/trustdb.gpg: trustdb created

SashaChernykh@DESKTOP-EEOT0TN D:\SashaGitHub
$ gpg --gen-key
gpg (GnuPG) 2.0.30; Copyright (C) 2015 Free Software Foundation, Inc.
This is …
Run Code Online (Sandbox Code Playgroud)

git gnupg

16
推荐指数
1
解决办法
6473
查看次数

在 Windows 上签署 git commit 时出现“无密钥”错误

尝试签署提交时出现此错误:

git commit -S -m "test"
gpg: skipped "EF617ACA9EC3XXXX": No secret key
gpg: signing failed: No secret key
error: gpg failed to sign the data
fatal: failed to write commit object
Run Code Online (Sandbox Code Playgroud)

这是 gpg --list-secret-keys --keyid-format LONG 的输出

钥匙在那里

sec   rsa4096/EF617ACA9EC3XXXX 2020-05-17 [SC] [expires: 2022-05-17]
      AD68154000A712DCD161D826EF617ACA9EC3XXXX
uid                 [ultimate] name <email@gmail.com>
Run Code Online (Sandbox Code Playgroud)

这是具有相同密钥的 git config

user.signingkey=EF617ACA9EC3XXXX
user.email=email@gmail.com
Run Code Online (Sandbox Code Playgroud)

知道出了什么问题吗?

windows git gnupg

8
推荐指数
4
解决办法
2359
查看次数

gpg:对不起,没有终端请求 - 无法获得输入

解密时我收到以下错误:

$ eyaml decrypt -s 'ENC and the key goes on here'
Run Code Online (Sandbox Code Playgroud)
.gnupg --quiet --no-secmem-warning --no-permission-warning --no-tty --yes --decrypt)
failed with: gpg: Sorry, no terminal at all requested - can't get input

我检查了我的钥匙,一切都井然有序.在这一点上,我没有选择.

architecture linux gnupg snakeyaml public-key-encryption

6
推荐指数
3
解决办法
6031
查看次数

IntelliJ Idea gpg 未能对数据进行签名

我无法在配置中使用 IntelliJ 和激活的 gpg。目前我只能用 git bash manuel 来做到这一点。我使用 Windows,我发现了很多关于 OSX 的信息,但这对我没有帮助。

如何在 IntelliJ 中使用 VCS 而无需对 git bash 做任何事情?

这是我尝试提交某些内容时 IntelliJ 的错误。

11:52   Commit failed with error
        0 files committed, 1 file failed to commit: update
        gpg failed to sign the data
        failed to write commit object
Run Code Online (Sandbox Code Playgroud)

git gnupg intellij-idea

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

gpg:找不到密钥块资源pubring.kbx,因为回购路径以gnupg主页为前缀

我曾经用gpg签名过我的提交,一切都很好,但是我突然收到了以下消息:

gpg: keyblock resource '/c/Users/username/path/to/project/C:\Users\username\.gnupg/pubring.kbx': No such file or directory
gpg: skipped "my_key": No secret key
gpg: signing failed: No secret key
error: gpg failed to sign the data
fatal: failed to write commit object
Run Code Online (Sandbox Code Playgroud)

请注意,关键块资源的路径由两个路径组成,实际上是无效的。

有关我的设置的信息

我的提交已自动签名,我的设置来自于这个答案,总而言之:我像平常一样设置了gpg,然后安装了gpg2并每次使用shell文件将密码短语通过管道传输到gpg中。不,我没有得到gpg-agent来执行此操作,尽管如果您知道该怎么做,请回答以下问题:密钥ID在签名中的密钥未对此提交进行签名

我有一个GNUPGHOME指向的环境变量C:\Users\username\.gnupg。我尝试将其更改为,C:/Users/username/.gnupg但斜杠也更改了错误。我尝试将其更改为,/c/Users/username/.gnupg但错误消息变为

gpg: Fatal: can't create directory '/c/Users/username/path/to/project/C:/Users/username/.gnupg': No such file or directory
Run Code Online (Sandbox Code Playgroud)

我也不知道导致此问题的系统上发生了什么变化。

相关问题

这个问题与不同的路径非常相似,但是没有解决:Git提交签名GPG问题 该评论是检查gitconfig中的路径,但是我在任何gitconfig中都没有指向gnupg目录的路径,并且它不会我认为无论如何都不要以回购路径作为前缀。我主要有这个~\.gitconfig:

[user]
    signingkey = my_key
[commit]
    gpgsign = true
[gpg]
    program = C:\\Users\\username\\gpg-no-tty.sh …
Run Code Online (Sandbox Code Playgroud)

git gnupg

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