DEV Community

loading...
Cover image for Managing Git credentials the easy way

Managing Git credentials the easy way

Arunanshu Biswas
Cryptography and Machine Learning enthusiast and paranoid about performance without sacrificing readability.
・1 min read

Introduction

Credential management in Git should not be difficult to use or configure, but (unfortunately) looking at the existing tools, it is difficult to even think about it, let alone configure them without errors.

NOT. ANY. MORE!

Presenting git-credential-netconf, an easy yet powerful way to manage your Git credentials by harnessing the power of GnuPG!

Getting Started

The following guide assumes you have a GPG key.

0. Installing git-credential-netconf

pip install git-credential-netconf
Enter fullscreen mode Exit fullscreen mode

Visit the project page.

1. Create a .netconf file in your home directory

touch ~/.netconf
Enter fullscreen mode Exit fullscreen mode

2. Start by filling in your username and password

[conf]
login = yourname
password = very-secret-password
Enter fullscreen mode Exit fullscreen mode

The .netconf file uses configuration file format.

Learn more about .netconf file.

3. Encrypt your .netconf file with gpg

gpg --recipient yourname@example.com --output ~/.netconf.gpg \
    --encrypt --sign ~/.netconf
Enter fullscreen mode Exit fullscreen mode

And remove your original .netconf for security:

shred -u ~/.netconf
Enter fullscreen mode Exit fullscreen mode

4. Tell Git to use it

⚠️ Make sure that ~/.local/bin is in $PATH

git config --global credential.helper 'netconf --debug'
Enter fullscreen mode Exit fullscreen mode

5. Now use git without hassle!

git push
Enter fullscreen mode Exit fullscreen mode

This will prompt git-credential-netconf to decrypt the ~/.netconf.gpg file using GPG and fetch the username and password, among other values.

You'll be asked for the password to GPG private key when decrypting.

Conclusion

I hope this article helps you in managing your precious credentials a bit better.

Questions? Comments? Concerns? Please put them down below and I'd be happy to help you.

Image Source: Manjaro's /usr/share/backgrounds folder 😃

Discussion (0)