Using Git with GNOME Keyring
Since GitHub has deprecated password-based authentication when using the Git CLI I have been searching for a solution to store GitHub's personal access tokens (HTTPS authentication) in a safe manner on Linux. My Xubuntu installation uses GNOME Keyring, which is unlocked when I log onto the system, so using this keyring seemed to be the most reasonable approach.
A default Git installation ships with several credential helpers, so we need to
configure Git to use one of these helpers. But this story wouldn't be about
Linux if we could get away without running a make command. The directory
/usr/share/doc/git/contrib/credential contains several helpers, including
libsecret and gnome-keyring. According to this StackOverflow post we should
use libsecret, so lets configure Git to use it:
sudo apt-get install make gcc libsecret-1-0 libsecret-1-dev cd /usr/share/doc/git/contrib/credential/libsecret sudo make git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret
The next time we call git push the provided credentials (GitHub username +
personal access token) are stored in the keyring. Tools such as seahorse (GUI)
or secret-tool (CLI) can be used to search or manage stored keys:
sudo apt-get install seahorse sudo apt-get install libsecret-tools