我不能每次都禁用输入密码,我是如何进行提交的。
I install and set Gpg4win→我移动到.git
子文件夹→
git add .
,git commit -m "Any description"
。在没有输入密码的情况下完成签名提交。
我得到窗口,我需要输入我的密码:
的pinentry-QT
请输入密码来解锁OpenPGP密钥:
我每次都需要输入我的密码,因为我提交了;
排除:提交之间的小时间。
我在USERPROFILE
文件夹中找到了C:\Users\SashaChernykh
- .gnupg\gpg-agent.conf
文件。我尝试添加到此文件no-tty,batch或no-use-agent行:
no-tty
batch
no-use-agent
我仍然得到实际行为,而不是预期。
default-cache-ttl
文件中的max-cache-ttl
和C:\Users\SashaChernykh\.gnupg\gpg-agent.conf
个参数,但不会禁用密码输入。答案 0 :(得分:5)
默认缓存-TTL 最大缓存-TTL
这是执行此操作的正确方法。默认超时时间为10分钟,因此如果提交之间的时间超过10分钟,则必须延长时间。
C:\用户\ SashaChernykh.gnupg \ GPG-agent.conf
这不是正确的道路。这将是GNU / Linux系统上的路径。
Windows上GnuPG的主目录是%APPDATA%\ gnupg
e.g。
c:\Users\SashaChernykh\Appdata\Roaming\gnupg\gpg-agent.conf
更改后,您还必须重新启动gpg-agent进程。
您可以在命令行上使用gpgconf来完成此操作。
gpgconf --reload gpg-agent
使用Gpg4win更改值并检查它是否真正设置的最简单方法是使用Kleopatra:
Settings -> Configure Kleopatra -> GnuPG System -> Private Keys
您可以在那里查看和更改设置:
expire cached PINs after N seconds
set maximum PIN cache lifetime to N seconds
达到某种高价值。
如果您不想输入密码短语,只需将其从密钥中删除即可。
在命令行上:
gpg --passwd <yourkeyid or email>
您可以将其留空,并会被要求两次确认您要将其留空。之后,您密钥的密码被删除,您不必再次输入密码。
您还可以从Kleopatra的详细信息窗口中选择更改密码(双击密钥)。
答案 1 :(得分:1)
特别是与Git无关,你需要运行gpg-agent。 Git for Windows shell包装好了。这里有一些说明如何自动运行代理:https://medium.com/@timmywil/sign-your-commits-on-github-with-gpg-566f07762a43
运行gpg-agent的棘手问题 - 启动后,它需要设置环境变量,以便gpg可以找到它的PID和套接字。
答案 2 :(得分:0)
我认为您需要从no-use-agent
删除.gnupg\gpg-agent.conf
选项和use-agent
。将.gnupg\gpg.conf
添加到while ( (c == fgetc(FileName)) != EOF ) {
。
PS。你能否改变你的用户名“СашаЧерных”?这是一个仅限英语的网站,无法阅读俄语的人有非ascii字母的问题。