当要求 GPG 密码时,如何让 git 使用 cli 而不是某些 GUI 应用程序?

当要求 GPG 密码时,如何让 git 使用 cli 而不是某些 GUI 应用程序?

每当我尝试创建签名的 git 提交时,我都需要输入我的 GPG 密钥。它会生成一些 GUI 应用程序来接收密码。看起来该应用程序是seahorse,所以我卸载了它,但 git 仍然使用一些 GUI 应用程序。 Polybar 不报告应用程序名称,其标题只是[process]@MYPC

如何让 git 使用命令行/pinentry?

版本:

答案1

这是 GnuPG 配置问题,而不是 git 配置问题。

pinentry-program您可以通过在 .gnupg 文件中设置 来强制 GnuPG 使用基于终端的对话框来输入密码gpg-agent.conf。对于简单的终端提示,请将以下内容放入您的~/.gnupg/gpg-agent.conf

pinentry-program /usr/bin/pinentry-tty

对于基于诅咒的提示:

pinentry-program /usr/bin/pinentry-curses

答案2

你的里面有什么~/.gnupg/gpg-agent.conf

pinentry-program /usr/bin/pinentry-curses的,所有使用的东西gpg都会在终端中询问我的密码。

注意:如果更改配置,您将需要重新启动 gpg-agent(或向其发送 HUP 信号)。只需运行gpgconf --kill gpg-agent即可,gpg需要时重新启动。

另请注意:环境变量 GPG_TTY 需要是您的当前的tty(即您当前正在运行的 tty gpg- 或任何称为 gpg 的内容,例如muttpassgit等)。因此,将以下内容添加到您的 ~/.bashrc (或任何适合您的 shell 的内容):

GPG_TTY=$(tty)
export GPG_TTY

man gpg-agent详情请参阅。

相关内容