Git signed commits - How to suppress “You need a passphrase to unlock the secret key…”

后端 未结 2 1414
灰色年华
灰色年华 2020-12-29 05:46

I changed my global Git configuration to sign all commits. I also use gpg-agent so that I don\'t have to type my password every time.

Now every time I make a new com

相关标签:
2条回答
  • 2020-12-29 06:04

    The accepted answer doesn't work for me for Git version 1.8.3.1 on Fedora 25.

    What worked ?

    1. Check if gpg-agent is running by
      $ gpg-agent

    2. Make sure gpg-agent has your passphrase in cache. To make sure it is there, sign any file in the current directory. If the passphrase was not in the cache, it will be asked now.
      $ gpg -s any-file.txt

    3. Don't forget to delete the newly generated signed any-file.txt.gpg
      $ rm any-file.txt.gpg

    4. Now, signing commits with Git will work now by taking the required passphrase from gpg-agent.
      $ git commit -S -m 'my commit message'

    0 讨论(0)
  • 2020-12-29 06:22

    This is more a gpg configuration issue than a git one.

    Since you are using an agent, you could as a workaround add no-tty to your gpg.conf.

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

    (this seems working even better than the --batch option)

    0 讨论(0)
提交回复
热议问题