禁用每次提交的输入密码

Disable enter passphrase for each commit

1。摘要

我无法禁用每次输入密码,我是如何提交的。


2。环境


3。重现步骤

→ 我移动到包含 .git 子文件夹的文件夹 →


4。预期行为

无需输入密码即可成功签署提交。


5。实际行为

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

pinentry-qt

Please enter the passphrase to unlock the OpenPGP secret key:

我每次提交时都需要输入我的密码;

排除:提交之间的时间很短。


6。没有帮助

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

no-tty
batch
no-use-agent

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


7。不提供

  1. 请不要说我每次都必须输入密码;
  2. 或者我可以进行未签名的提交;
  3. I can set big values 对于 C:\Users\SashaChernykh\.gnupg\gpg-agent.conf 文件中的 default-cache-ttlmax-cache-ttl 参数,但它不会禁用密码输入。

与 Git 无关,您需要 gpg-agent 运行ning。 Git for Windows shell 已打包。这里有一些说明如何自动 运行 代理:https://medium.com/@timmywil/sign-your-commits-on-github-with-gpg-566f07762a43

运行gpg-agent 的棘手之处 - 启动后,它需要设置环境变量,以便 gpg 可以找到它的 PID 和套接字。

我认为您需要从 .gnupg\gpg-agent.conf 中删除 batch 选项和 no-use-agent。将 use-agent 添加到 .gnupg\gpg.conf

default-cache-ttl max-cache-ttl

这是执行此操作的正确方法。默认超时为 10 分钟,因此如果两次提交之间的间隔超过 10 分钟,则必须延长时间。

C:\Users\SashaChernykh.gnupg\gpg-agent.conf

这不是正确的路径。这将是 GNU/Linux 系统上的路径。

Windows 上 GnuPG 的主目录是 %APPDATA%\gnupg

例如

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>

您可以将其留空,系统会询问两次以确认您是否要将其留空。之后,您的密钥的密码短语将被删除,您无需再次输入密码短语。

您还可以 select 从 Kleopatra 的详细信息 Window 更改密码(双击密钥)。