尝试使用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密钥并按照步骤但它仍然不起作用,任何想法?
我一直在设置我的开发环境,所以当我创建一个提交时,它会自动由GPG签名.我在这里关注了Githubs的文档:https://help.github.com/categories/gpg/ .
我试图使用IntelliJ的git接口来创建一个提交,但它始终失败并出现此错误.
Run Code Online (Sandbox Code Playgroud)gpg: cannot open `/dev/tty`: Device not configured error: gpg failed to sign the data fatal: failed to write commit object
我直接从我的终端使用git时没有遇到这个错误,我发现有人遇到类似问题的问题(使用Source Tree)并且提到了一些关于GUI没有弹出来输入密码的问题.我假设这与该问题类似.
我该如何解决这个问题呢?
我安装了Git for Windows,包括Windows 10和Gpg4win上的Git Bash.默认情况下,我必须将我通过Kleopatra创建的所有密钥重新导入到Git Bash中内置的GPG版本中,并且它不允许我设置代理.我需要做的是自动唱歌,这样我不需要每次都输入密码,而只是在给定的时间段内第一次输入密码.怎么可能?
我尝试按照本教程,但gpg2在Git Bash中执行时不使用正确的字符集,因此它无法识别包含非ASCII字符的键.
有什么方法可以解决这个问题吗?在Windows上使用GGP与Git签名的最佳方法是什么?
我无法开始使用Gpg4win.
成功提交.
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)
我安装了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 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)
知道出了什么问题吗?
解密时我收到以下错误:
$ 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
我检查了我的钥匙,一切都井然有序.在这一点上,我没有选择.
我无法在配置中使用 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) 我曾经用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)