powershell GPG提交签名在Windows上卡住

k2fxgqgv  于 2023-08-05  发布在  Shell
关注(0)|答案(1)|浏览(152)

首先是一些关于我当前设置的背景信息。
在Windows 11上,在Windows终端中使用PowerShell 7,我启用了以下配置:

# $HOME\.gitconfig
user.signingkey=F380062B9F847687
commit.gpgsign=true
gpg.program=C:/Program Files (x86)/GnuPG/bin/gpg.exe

字符串
我通过winget安装了GPG

winget install --id GnuPG.GnuPG


之后,我为GNU GPG配置了以下设置:

# $HOME\.gnupg\gpg.conf
use-agent
pinentry-mode loopback
# $HOME\.gnupg\gpg-agent.conf
allow-loopback-pinentry

的字符串
出于故障排除的目的,我为Git启用了详细命令输出:

Set-EnvironmentVariable -Key GIT_TRACE -Value 1 -Scope Process


Kill and restart and gpg-agent只是为了确保:

gpgconf --kill gpg-agent && gpgconf --launch gpg-agent


最后,我尝试使用以下命令签署一个提交:

git commit -m 'test'
00:31:55.001562 exec-cmd.c:243          trace: resolved executable dir: C:/Program Files/Git/mingw64/bin
00:31:55.009679 git.c:462               trace: built-in: git commit -m 'test'
00:31:55.024849 run-command.c:661       trace: run_command: 'C:/Program Files (x86)/GnuPG/bin/gpg.exe' -bsau F380062B9F847687

这就是我现在被困的地方。Git命令永远不会完成,并且永远处于不确定状态。没有错误消息,我可以拿起进一步的谷歌搜索,也没有日志文件在$HOME\.gnupg目录(可疑?)所以我确实很感激任何其他能帮我解决这个问题的线索。

cygmwpex

cygmwpex1#

我偶然发现了一个解决方案:在我的例子中,没有设置环境变量GNUPGHOME,所以添加了推荐的默认记录$HOME\.gnupg,现在一切都正常了。
进一步阅读的来源:https://www.gnupg.org/documentation/manuals/gnupg/GPG-Configuration.html

相关问题