为什么用git签署提交时gpg-agent / pinentry不可用?

法官2020

目前,我在运行git 2.15.0.windows.1,gpg 2.2.1和gpg-agent 2.2.1的Windows上。我正在尝试通过pinentry / gpg-agent与git签署提交,但是,当通过git签署提交时,pinentry永远不会出现,并且git会引发错误。我仍然能够通过gpg签署提交,但不能通过git签名。

> git commit -a -S -m "Signed Commit"
gpg: gpg-agent is not available in this session
gpg: Sorry, no terminal at all requested - can't get input
error: gpg failed to sign the data
fatal: failed to write commit object

我仍然可以在没有git的情况下通过gpg进行签名:

我的gpg.conf:

keyserver hkp://keys.gnupg.net
no-tty
use-agent

当我删除最后两行时,gpg仍然会弹出pinentry,然后git可以再次签署提交,但是它将仅通过命令行而不是pinentry接受密码短语输入。

如何解决原始错误并使签名提交弹出pinentry?

法官2020

我能够通过设置正确的git config选项来修复它。

首先,通过运行获取正确的签名,gpg --list-signatures然后查找标记为sig的签名ID。sig 3

sig 3        54ABFD17372D7B88  ...

然后将git config设置为user.signingkey

git config --global user.signingkey 54ABFD17372D7B88

最后,设置gpg.programgpg.exe二进制文件的位置

git config --global gpg.program "C:\Program Files (x86)\GnuPG\bin\gpg.exe"

现在,当您使用-S提交时--gpg-sign,您应该会看到pinentry框。


如果您希望它与大多数GUI程序一起使用,例如VS Code,GitHub Desktop和基于IDEA的产品(PyCharm,Android Studio,PHPStorm等),则应设置commit.gpgsign为true:

git config --global commit.gpgsign true

这将签署每个提交。如果您不想签署特定的提交,请--no-gpg-sign提交时使用

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么变量不可用?

来自分类Dev

gpg:签名失败:密钥不可用

来自分类Dev

为什么我必须杀死gpg-agent来签署我的提交?

来自分类Dev

使用sudo时别名不可用

来自分类Dev

ssh-agent一次使用后变得不可用

来自分类Dev

使用gpg-agent和SSH进行Pinentry失败

来自分类Dev

使用gpg-agent和SSH进行Pinentry失败

来自分类Dev

为什么NPM在Docker容器中不可用

来自分类常见问题

为什么无符号整数在PostgreSQL中不可用?

来自分类Dev

安装postgresql。为什么initdb不可用?

来自分类Dev

为什么Android支持库版本22不可用?

来自分类Dev

为什么模块“ ui.bootstrap”不可用?

来自分类Dev

为什么在Django unitest期间我的表不可用?

来自分类Dev

PhpStorm-为什么此案例声明不可用?

来自分类Dev

为什么原型在简单的JavaScript对象中不可用

来自分类Dev

为什么应将AutorotateToInterfaceOrientation方法标记为不可用?

来自分类Dev

为什么gapi.hangout成员不可用

来自分类Dev

为什么是我的弦。查找不可用

来自分类Dev

不确定为什么“ userApp”模块不可用

来自分类Dev

为什么“共享按钮”在Ubuntu One中不可用?

来自分类Dev

为什么ARGeoTrackingConfiguration到处都不可用?

来自分类Dev

为什么“共享按钮”在Ubuntu One中不可用?

来自分类Dev

安装postgresql。为什么initdb不可用?

来自分类Dev

为什么在此示例中变量范围不可用

来自分类Dev

为什么SQLiteDatabase.addCustomFunction不可用?

来自分类Dev

为什么一半的逻辑分区不可用?

来自分类Dev

为什么 BooleanFilter 似乎对我不可用?

来自分类Dev

为什么别名在 /etc/profile 中不可用?

来自分类Dev

为什么 vundle 在 apt 中不可用?

Related 相关文章

热门标签

归档