git - gpg onto mac osx: error: gpg failed to sign the data

后端 未结 7 2173
半阙折子戏
半阙折子戏 2020-12-24 01:18

I installed GPG from brew.

brew install gpg

It is gnupg2-2.0.30_2.

When I commit, I do get a error message:

You nee         


        
相关标签:
7条回答
  • 2020-12-24 01:37

    If you’re not getting prompted at all for a passphrase, the solution may just be to install a program to facilitate that. The most common is pinentry.

    brew install pinentry-mac
    

    So installing that and trying again may get things working. But if not, another thing to do is make sure git it using/finding the right GPG program. These days you really should be using gpg2, so if you don’t already have that installed, do:

    brew install gnupg2
    

    And then, to tell git that’s the GPG program want to you, this:

    git config --global gpg.program gpg2
    

    At that point, try your commit again and things may just work.

    But if not, then try this:

    echo "pinentry-program /usr/local/bin/pinentry-mac" >> ~/.gnupg/gpg-agent.conf
    

    …and then try again.

    Note: Per some comments below, in order for this change to take effect, you apparently might need to reboot after making the change.

    0 讨论(0)
  • 2020-12-24 01:37

    If you are still getting problems in macOS, open ~/.gitconfig and change anything below [gpg] to program = /usr/local/bin/gpg

    0 讨论(0)
  • 2020-12-24 01:43

    I had the same error message and found that my key was expired. So it might be a good idea to check your key expiration with:

    gpg --list-keys

    If your key is expired as well you can adjust the expiration date with:

    gpg --edit-key <YOUR_KEY>

    and then:

    gpg> expire
    ...enter the new expiration date...
    gpg> save
    
    0 讨论(0)
  • 2020-12-24 01:43

    Install GPGSuite instead , it has GUI for generating the key.

    You can see more details here

    0 讨论(0)
  • 2020-12-24 01:44

    In my case the user.signingkey was setting wrong....Copy the right signingkey the problem solved

    0 讨论(0)
  • 2020-12-24 01:44

    Your question assumes that you actually want to sign your commits. If you don't, the fix is very simple - switch off commit signing:

    git config --global commit.gpgsign false
    

    In my case I had inherited some default git config settings which included commit signing.

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