Fix Git error “fatal: Authentication failed”

Git is a popular version control software that every developer should know how to use. But sometimes, it pops out strange errors that confuses even seasoned users. If you are seeing "Authentication failed" whenever you try to use git push command, this short article is going to help you solve this error message.

The "fatal: Authentication failed" error message

The "fatal: Authentication failed" error message indicates that the existing authentication method you have been using on your repository has become obsolete/outdated. The full error message may look like this

remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information. fatal: Authentication failed for 'https://github.com/user/example-project.git/'
Code language: JavaScript (javascript)

Or if you're pushing to your remote repository via HTTPS, the error message may look like this

If you enabled two-factor authentication in your Github account you won't be able to push via HTTPS using your accounts password. Instead you need to generate a personal access token. This can be done in the application settings of your Github account. Using this token as your password should allow you to push to your remote repository via HTTPS. Use your username as usual.

Usually, the "Authentication Failed" error happens if you recently enabled 2-Factor Authentication on your GitHub account and uses HTTPS to push/pull in Git at the same time. GitHub deprecates the password authentication method from August 13, 2021 to favor more secure way of authentication. In this article, we will show you several possible ways to get around the "fatal: Authentication failed" problem.

Switch to SSH protocol in Git

As being said earlier, Github is no longer allow authenticating via HTTPS URLs once 2-Factor Authentication (2FA) enabled. Git with HTTPS uses public-key encryption-based authentication for doing every action like git push, git clone, git fetch and git pull, etc. Meanwhile, SSH protocol allows Git to securely transfer repository data over the internet.

In order to quickly fix "fatal: Authentication failed", you can remove the existing origin (which is something like https://github.com:user/repo.git) and re-add a [email protected]:user/repo.git URL to instruct Git to use SSH instead. Run the following command to do so:

git remote -v git remote remove origin git remote add origin [email protected]:user/repo.git

If you didn't set up the necessary private keys for Git, running the commands above will end up with an error message. You may need to consult access Github repositories using SSH keys and Connecting to GitHub with SSH for instructions on adding private keys.

git remote add origin with SSH

Create a PAT (Personal Access Token)

When you connect to a GitHub repository from Git, you'll need to authenticate with GitHub using either HTTPS or SSH. Alternatively, you can use Github CLI with the command gh auth login. All of these authentication method requires a PAT (Personal Access Token) that is a more secure alternative to passwords. Follow the instructions below to create a PAT :

First, login to your account. In the upper right corner of the page, look for your avatar, click it and select Settings.

In the Settings page, choose Developer settings > Developer settings > Personal access tokens in the left sidebar.

Personal access tokens

Click Generate new token in order to create a new PAT. You will be able to name the token, set its expiration date and its scope. For a token that specifically for managing repositories, you should limit the scope to repo.

Limit PAT scope

Finally, click Generate token. You would be redirected to another page which shows you the newly created token. Remember that the token will only be shown once. If you lost the token, you have no way to recover it but to re-generate a new one.

Treat your tokens like passwords and keep them in a secure place. The token should be stored in an environment variable instead of hardcoding them into your programs/applications source code.

Once you're done creating a token, you have to reset the old password authentication by running the following command.

git config --global --unset credential.helper
Code language: PHP (php)

You may also need to update your repository to change the protocol from HTTPS to native SSH

git remote -v git remote remove origin git remote add origin [email protected]:user/repo.git

Disable Github 2-Factor Authentication

If you recently enabled 2-Factor Authentication(2FA) on your GitHub account right before the "Authentication Failed" error pops up, you can try disabling it to quickly fix the problem.

However, remember that disabling 2FA significantly increase the risk of your account to be compromised. Also, If you're a member, billing manager, or outside collaborator to a public repository of an organization that requires two-factor authentication and you disable 2FA, you'll be automatically removed from the organization, and you'll lose your access to their repositories. In order to regain access to the organization, you have to re-enable 2FA and re-apply to the organization.

To disable 2FA for an account, you need to log into it, then click your profile photo in the upper right corner and select Settings.

Settings icon in the user bar

Then, select Account Security in the left sidebar and click Disable in Two-factor authentication section.

Disable two-factor authentication button Github

Remove saved credentials on Windows

Windows users may beed to change your login or password of the Git service account stored in Windows Credential Manager.

First, you need to search for Windows Credential Manager from the Start menu. Usually it is placed in Control Panel if you use Windows 7 and Settings on newer Windows versions.

On the Credential Manager window, click on Windows Credentials tab and look for anything that starts with git: or ada:. In order to remove them, you would have to click each of them to open the details view and click Remove.

You may also need to remove them from Generic Credentials, too.

Remove saved credentials from Windows Credential Manager

We hope that the information above helps you solve the "fatal: Authentication failed" error message in Git. You may want to check out our other guide on fixing other popular Git issues such as Git : how to accept all current/incoming changes, How to clone a private repository in Github or How to access GitHub from inside China.

Click to rate this post!
[Total: 13 Average: 4.8]

Leave a Comment