【问题标题】:Git signed commits - How to suppress "You need a passphrase to unlock the secret key..."Git 签名提交 - 如何抑制“您需要密码来解锁密钥......”
【发布时间】:2016-10-12 07:16:15
【问题描述】:

我更改了全局 Git 配置以签署所有提交。我还使用 gpg-agent,这样我就不必每次都输入密码了。

现在每次我进行新的提交时,我都会看到以下五行打印到我的控制台:

[blank line]
You need a passphrase to unlock the secret key for
user: "John Doe <mail@gmail.com>"
2048-bit RSA key, ID ABCDEF12, created 2016-01-01
[blank line]

更糟糕的是,当我进行简单的存储时,此消息被打印两次,不必要地填满了我的控制台(我假设创建的两个提交对象中的每一个都有一个)。

有没有办法抑制这个输出?

【问题讨论】:

    标签: git gnupg git-commit


    【解决方案1】:

    这更像是一个 gpg 配置问题,而不是一个 git 问题。

    由于您使用的是代理,因此您可以将no-tty 添加到您的gpg.conf

    echo 'no-tty' >> ~/.gnupg/gpg.conf
    

    (这似乎是working even better than the --batch option

    【讨论】:

    • 这似乎让我无法用 gpg --sign-key xxxxxxxx 签署密钥
    • @XavierHo 好的:问一个关于你的操作系统、Git 版本和说明这个问题的确切设置的新问题。
    • 我要先四处看看,也许设置一个最小的测试用例。谢谢
    【解决方案2】:

    接受的答案对我在 Fedora 25 上的 Git version 1.8.3.1 不起作用。

    什么有效?

    1. 检查gpg-agent 是否由
      $ gpg-agent 运行

    2. 确保 gpg-agent 在缓存中有您的密码。要确保它在那里,请签署当前目录中的任何文件。如果密码短语不在缓存中,则会立即询问。
      $ gpg -s any-file.txt

    3. 不要忘记删除新生成的签名any-file.txt.gpg
      $ rm any-file.txt.gpg

    4. 现在,通过从 gpg-agent 获取所需的密码短语,现在可以使用 Git 签署提交。
      $ git commit -S -m 'my commit message'

    【讨论】:

    • 有趣。在我写它的时候它对我有用。不过,+1
    • 很好,gpg -s any-file.txt 这一步是缓存密码的好方法!
    猜你喜欢
    • 2018-09-12
    • 2018-12-30
    • 2013-04-17
    • 1970-01-01
    • 1970-01-01
    • 2023-02-22
    • 1970-01-01
    • 2014-12-16
    • 2015-07-24
    相关资源
    最近更新 更多