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

如何在.gitconfig中用pass+sed设置smtppass替代明文密码?

用pass+sed替代.gitconfig中的明文SMTP密码

当然可以,Git的sendemail.smtppass配置项支持直接调用外部命令获取密码,只要把配置值改成以!开头的命令即可,具体操作如下:

方法一:直接编辑.gitconfig

把原来的明文密码行替换成:

[sendemail]
    # 保留其他原有配置
    smtppass = "!pass show host.com/johndoe.com | sed -n '3p'"

方法二:用git config命令设置(更安全,避免手动编辑出错)

执行以下命令全局配置(如果只想针对当前仓库,去掉--global参数):

git config --global sendemail.smtppass "!pass show host.com/johndoe.com | sed -n '3p'"

注意事项

  • 确保你的Git版本在2.18及以上(这个版本开始支持配置值的命令替换)
  • 运行Git的环境要能正常调用pass和sed命令,PATH变量里得包含它们的路径
  • 如果你的pass密钥需要解锁,记得提前用gpg-agent缓存密钥,不然发送邮件时可能会卡在密码输入环节(终端环境没问题,GUI环境可能需要额外配置)
  • 命令外层的双引号是为了避免Git解析命令里的空格和管道符出错,不要省略

你可以用git config --get sendemail.smtppass查看配置是否生效,或者直接发送一个测试补丁验证是否能正常获取密码发送。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 14:30:07