Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Windows上为Git配置GPG_Git_Bash_Character Encoding_Gnupg_Pgp - Fatal编程技术网

在Windows上为Git配置GPG

在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进

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

我试着这样做,但当从Git Bash中执行时,gpg2没有使用正确的字符集,因此它无法识别包含非ASCII字符的键

有没有办法解决这个问题?在Windows上使用Git进行PGP签名的最佳方式是什么?

于2018年10月更新,如下所示:

在中没有更新的痕迹


原始答复(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)一起工作。虽然它并不总是对我有效,但它应该在一般情况下有效

以下是我写下的完整说明的简短摘要,假设您已经设置了签名:

  • 确保您正在使用git的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"