在Windows上为Git配置GPG
我在Windows 10和Gpg4win上安装了Git for Windows,包括Git Bash。默认情况下,我必须将通过Kleopatra创建的所有密钥重新导入Git Bash中内置的GPG版本,并且它不允许我设置代理。我需要做的是自动唱歌,这样我就不需要每次都输入密码,而只需要在给定的时间段内第一次输入密码。这怎么可能 我试着这样做,但当从Git Bash中执行时,gpg2没有使用正确的字符集,因此它无法识别包含非ASCII字符的键 有没有办法解决这个问题?在Windows上使用Git进行PGP签名的最佳方式是什么?于2018年10月更新,如下所示: 在中没有更新的痕迹在Windows上为Git配置GPG,git,bash,character-encoding,gnupg,pgp,Git,Bash,Character Encoding,Gnupg,Pgp,我在Windows 10和Gpg4win上安装了Git for Windows,包括Git Bash。默认情况下,我必须将通过Kleopatra创建的所有密钥重新导入Git Bash中内置的GPG版本,并且它不允许我设置代理。我需要做的是自动唱歌,这样我就不需要每次都输入密码,而只需要在给定的时间段内第一次输入密码。这怎么可能 我试着这样做,但当从Git Bash中执行时,gpg2没有使用正确的字符集,因此它无法识别包含非ASCII字符的键 有没有办法解决这个问题?在Windows上使用Git进
原始答复(2017年): 默认情况下,Git for Windows包含gpg1,而不是gpg2
vonc@bvonc MINGW64 ~/.ssh
$ gpg --version
gpg (GnuPG) 1.4.21
确实建议使用不同的gpg:
git config --global gpg.program "c:/Program Files (x86)/GnuPG/bin/gpg.exe"
请使用重试。尝试排除来自其他程序的任何干扰。因为(至少)git 2.19.1,git包括gpg2强> 这意味着您不再需要仅仅为了git签名而安装gpg4win。 您询问如何设置提交签名,以便只需在某个超时后输入您的密码:
gpg代理
可以处理这个问题,我测试了它与git的gpg(但与gnupg的gpg)一起工作。虽然它并不总是对我有效,但它应该在一般情况下有效
以下是我写下的完整说明的简短摘要,假设您已经设置了签名:
C:\Users\username\.gnupg\gpg agent.conf
中更新缓存时间(如果文件不存在,则创建该文件),添加默认缓存ttl 34560000
和最大缓存ttl 34560000
。这些时间以秒为单位,选择你想要的gpgconf--kill-gpg-agent
重新启动gpg-agent在最新版本的Gpg4Win中,他们更改了路径/文件名
gpg.exe
现在是v2,他们从安装路径中删除了GNU
c:/Program Files(x86)/GnuPG/gpg.exe
它实际上将gpg.exe
放在GnuPG
下的bin
文件夹中。因此应该更新路径以反映此更改,即:../GnuPG/bin/gpg.exe
@RafaelCamposNunes好的,我已经相应地编辑了答案。@VonC仅供参考,我碰巧发现git 2.19.1包含gpg2,他们已经悄悄地更新了它,似乎。。。让事情变得更简单了。谢谢你。我在回答中加入了您的评论,以提高可视性。您能否详细说明“确保您使用的是git的gpg”,并可能暗示如何导入ket?@TafT您查看了我链接的完整说明了吗?我没有!谢谢你的提示。
git config --global gpg.program "c:/Program Files (x86)/GnuPG/bin/gpg.exe"