You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Git与GPG,从CLI密码管理器自动获取提交签名口令?

配置Git提交自动签名并从密码管理器获取GPG口令

核心思路

GPG通过*pinentry*程序获取私钥口令,我们可以替换默认的*pinentry*为自定义脚本,让脚本调用密码管理器的CLI接口自动提取口令,避免手动输入。

步骤详解

1. 创建自定义pinentry脚本

在用户目录下创建一个可执行脚本,比如~/.gnupg/pinentry-passmanager(文件名可自定义),内容如下(根据你的密码管理器CLI调整):

#!/bin/bash
# 替换为你的密码管理器CLI命令,示例为1Password CLI
PASSWORD=$(op item get "GPG私钥口令" --field password)
# Bitwarden CLI示例:PASSWORD=$(bw get password "GPG私钥")
echo "$PASSWORD"

注意:不同密码管理器的CLI语法差异较大,请根据实际工具的文档修改获取口令的命令。

2. 给脚本添加执行权限

运行命令赋予脚本可执行权限:

chmod +x ~/.gnupg/pinentry-passmanager

3. 配置GPG Agent使用自定义脚本

编辑~/.gnupg/gpg-agent.conf文件(不存在则新建),添加或修改以下配置:

pinentry-program /home/你的用户名/.gnupg/pinentry-passmanager
# 可选:设置口令缓存时长,单位为秒,示例为1小时
default-cache-ttl 3600
max-cache-ttl 3600

4. 重启GPG Agent使配置生效

执行命令重启GPG Agent:

gpg-connect-agent reloadagent /bye

5. 验证配置有效性

发起一次带签名的Git提交测试:

git commit -S -m "测试自动签名提交"

若配置正确,提交会自动完成签名,无需手动输入口令。

关键注意事项

  • 确保密码管理器的CLI已完成登录并保持会话有效,部分工具支持配置持久化会话,可参考对应文档设置。
  • 不同操作系统的路径格式不同:macOS用户目录为/Users/你的用户名,Windows则为C:\Users\你的用户名,需对应调整脚本路径。

内容的提问来源于stack exchange,提问作者Paul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 11:33:02