禁用每次提交的输入密码

时间:2018-03-05 09:32:50

标签: git gnupg gpg-agent git-sign

1。摘要

我不能每次都禁用输入密码,我是如何进行提交的。

2。环境

  • Windows 10企业版LTSB 64位EN,
  • git 2.16.2.windows.1,
  • gpg-agent(GnuPG)2.2.4,
  • gpg4win 3.0.3。

3。重现的步骤

I install and set Gpg4win→我移动到.git子文件夹→

的文件夹
  • git add .
  • git commit -m "Any description"

4。预期的行为

在没有输入密码的情况下完成签名提交。

5。实际行为

我得到窗口,我需要输入我的密码:

Enter password

  

的pinentry-QT

     

请输入密码来解锁OpenPGP密钥:

我每次都需要输入我的密码,因为我提交了;

排除:提交之间的小时间。

6。没帮忙

我在USERPROFILE文件夹中找到了C:\Users\SashaChernykh - .gnupg\gpg-agent.conf文件。我尝试添加到此文件no-ttybatchno-use-agent行:

no-tty
batch
no-use-agent

我仍然得到实际行为,而不是预期。

7。不提供

  1. 请不要提供,我必须每次都输入密码;
  2. 或者我可以进行无符号提交;
  3. I can set big values代表default-cache-ttl文件中的max-cache-ttlC:\Users\SashaChernykh\.gnupg\gpg-agent.conf个参数,但不会禁用密码输入。

3 个答案:

答案 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字母的问题。