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

ran*_*124 8 git gpg gpg-agent

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

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

版本:

lar*_*sks 14

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

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

pinentry-program /usr/bin/pinentry-tty
Run Code Online (Sandbox Code Playgroud)

对于基于诅咒的提示:

pinentry-program /usr/bin/pinentry-curses
Run Code Online (Sandbox Code Playgroud)


cas*_*cas 8

你的里面有什么~/.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
Run Code Online (Sandbox Code Playgroud)

man gpg-agent详情请参阅。