我安装了Git for Windows,包括Windows 10和Gpg4win上的Git Bash。默认情况下,我必须将我通过Kleopatra创建的所有密钥重新导入到Git Bash中内置的GPG版本中,并且它不允许我设置代理。我需要做的是自动演唱,这样我不需要每次都输入密码,而只是在给定的时间段内第一次输入密码。怎么可能?
我试图关注this tutorial,但gpg2在Git Bash中执行时没有使用正确的字符集,因此它无法识别包含非ASCII字符的键。
有什么方法可以解决这个问题吗?在Windows上使用GGP进行PGP签名的最佳方法是什么?
答案 0 :(得分:17)
更新于2018年10月,commented below为PHPirate:
λ git --version
git version 2.19.1.windows.1
λ gpg --version
gpg (GnuPG) 2.2.9-unknown
libgcrypt 1.8.3
Copyright (C) 2018 Free Software Foundation, Inc.
中没有该更新的痕迹
原始答案(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"
使用latest Git for Windows UTF-8 set in locale再次尝试 尝试使用Git simplified path来排除其他程序的干扰。
答案 1 :(得分:5)
(至少)从git 2.19.1开始,git包含了gpg2!
这意味着您不再需要为git签名安装gpg4win。
您问如何设置提交签名,这样您只需要在特定的超时后输入密码即可:gpg-agent
可以解决这个问题,并且我测试了它适用于git的gpg(但不适用于gnupg的gpg)。尽管它并不总是对我有用,但应该可以正常使用。
以下是我写下的here的全部说明的简短摘要,假设您已进行签名设置:
C:\Users\username\.gnupg\gpg-agent.conf
中(如果文件不存在,则创建文件),分别添加default-cache-ttl 34560000
和max-cache-ttl 34560000
。这些时间以秒为单位,选择您想要的任何内容。gpgconf --kill gpg-agent
重新启动gpg-agent。