I have been using GitHub for a little while, and I have been fine with git add
, git commit
, and git push
, so far without any problems. Suddenly I am having an error that says:
fatal: Authentication Failed
In the terminal I cloned a repository, worked on a file and then I used git add
to add the file to the commit log and when I did git commit
, it worked fine. Finally, git push
asks for username and password. I put those in correctly and every time I do this, it says the same error.
What is the cause of this problem and how can I fix it?
The contents of .git/config
are:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = http://www.github.com/######/Random-Python-Tests
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
[user]
name = #####
email = ############
https://
, not http://
.
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.
Creating a personal access token
You may also need to update the origin for your repository if it is set to HTTPS. Do this to switch to SSH:
git remote -v
git remote set-url origin git@github.com:USERNAME/REPONAME.git
On Windows, try the following steps to edit or remove the saved credentials:
Click Start Type: Credential Manager (on Windows 10, this is under "Start → Settings". Then search for "Credential Manager") See the Windows Credentials Manager shortcut and double-click it to open the application. Once the application is open, click on the Windows Credentials tab. Locate the credentials that you want to remove/update. They will start with "git:" and might begin with "ada:" Click on the credential entry. It will open a details view of the entry. Click Edit or Remove as required and confirm. Lather, rinse, repeat as necessary.
https://i.stack.imgur.com/NejcV.png
Maybe you have changed the password recently for you Git account. You could try the git push
line with the -u
option:
git push -u origin branch_name_that_you_want_to_push
After executing the above command, it will ask for a password. Provide your updated password.
https
only
git push -u
It happens if you change your login or password of git service account (Git). You need to change it in Windows Credentials Manager too. type "Credential Manager" in Windows Search menu open it.
Windows Credentials Manager->Windows Credential and under Generic Credentials edit your git password.
On Windows, this worked for me, and it also remembers my credentials:
Run Git Bash Point to the repository directory Run git config --global credential.helper wincred
git config –global credential.helper unset
Source, and more details in this answer.
git config --global --unset credential.helper
? That's what worked for me in Git Bash.
git config --global --unset credential.helper
. Ultimately, I restored my correct setting with git config credential.helper store
.
git config --global credential.helper osxkeychain
First, you can make sure to use the proper URL:
git remote set-url origin https://github.com/zkirkland/Random-Python-Tests.git
Then, if it was working before, and if it wasn't asking for your username, it must be because you had stored your credentials (login/password) in a $HOME/.netrc
file, as explained here. You can double check those settings, and make sure that your proxy, if you have one, hasn't changed.
Check the output of git config --global credential.helper
.
And make sure the credentials are your GitHub user account, and a PAT (Personal Access token).
You can update your credentials using the Git credential helper, as in here.
If that still doesn't work, you can switch to an SSH URL:
git remote set-url origin git@github.com:zkirkland/Random-Python-Tests.git
But that means you have published your SSH public key in your Account settings.
For Visual Studio Code specifically, see also "git push
: Missing or invalid credentials. fatal: Authentication failed for 'https://github.com/username/repo.git'"
You can unselect the setting git.terminalAuthentication
to avoid the error message.
https://
to git://
, while I needed git@github.com:user.repo.git
. Strange that git didn't report the issue somehow, just silent hanging
git://
is a valid (albeit obsolete) protocol, it simply tried and use it, waiting for a remote server to listen on port 9418.
Basically my credential was expired, and I was facing the issue.
The following two commands helped me:
git config --global --unset credential.helper
git config credential.helper store
It will ask you for credentials next time when you try to push.
Follow the below guidelines for more details for secured and unsecured storage of the user name and passwords:
git-credential-store
git-credential-cache
On Windows, if you found an authentication error problem when you entered the correct password and username, it's a Git problem. To solve this problem, when you are installing the Git in your machine, uncheck the Enable Git Credential Manager option.
https://i.stack.imgur.com/V6yNw.png
I think that for some reason GitHub is expecting the URL to NOT have subdomain www. When I use (for example)
git remote set-url origin https://www.github.com/name/repo.git
it gives the following messages:
remote: Anonymous access to name/repo.git denied
fatal: Authentication failed for https://www.github.com/name/repo.git
However, if I use
git remote set-url origin https://github.com/name/repo.git
it works perfectly fine. Doesn't make too much sense to me... but I guess remember not to put www in the remote URL for GitHub repositories.
Also notice the clone URLs provided on the GitHub repository webpage doesn't include the www.
I was getting the same error. I tried all the solutions whichever mentioned in this page, but they didn't work. Finally, I found the solution.
These kinds of error comes if sometimes your system password has changed recently anytime. It will try to validate from the old password. So, follow these steps:
Go to Control Panel Click on User Accounts Under Credentials manager Go to Manage Windows Credentials Go to Generic Credentials Expand the Git server tab Click on Remove from vault
Also, you can click Edit and change your password stored here directly.
Before you try everything above, try to git push
again, yes it works on me.
I'm not really sure what I did to get this error, but doing:
git remote set-url origin https://...
didn't work for me. However:
git remote set-url origin git@bitbucket.org:user/repo
somehow worked.
I've ran into
git fetch
fatal: Authentication failed for 'http://...."
after my Windows password had expired and was changed. Multiple fetches, reboot and even reinstall of Git with Windows Credential Manager didn't help.
Surprisingly the right answer is somewhere here in comments, but not in answers (and some of them are really weird!).
You need to go to Control Panel → Credential Manager → Windows Credentials and update you password for git:http://your_repository_address
I was adding to Bitbucket linked with Git and had to remove the stored keys, as this was causing the fatal error.
To resolve, I opened the command prompt and ran
rundll32.exe keymgr.dll, KRShowKeyMgr
I removed the key that was responsible for signing in and next time I pushed the files to the repo, I was prompted for credentials and entered the correct ones, resulting in a successful push.
The same error (Windows, Git Bash command line). Using https which should prompt for login credentials but instead errors:
$ git pull origin master
fatal: Authentication failed for 'https://github.com/frmbelz/my_git_project.git'
$ git config -l
...
credential.helper=manager
...
$ git config --global --unset credential.helper
$ git config --system --unset credential.helper
git pull
now prompted for username/password prompts.
In my case, I recently changed my windows password and I have SSH key configured for git related actions (pull, push, fetch etc.,), after I encountered the "fatal: Authentication failed" error, I updated my password in the windows credential manager (Control Panel\User Accounts\Credential Manager)for all items starting with git:..., and tried again, worked this time!
I had the same problem. I set the URL in this way:
git remote set-url origin https://github.com/zkirkland/Random-Python-Tests.git
I also removed this entry from the configuration file: askpass = /bin/echo
.
Then "git push" asked me for username and password and this time it worked.
askpass = /bin/echo
.
If you have enabled the two-factor authentication on your GitHub account, then sign in to your GitHub account and go to
to generate a new access token, copy that token, and paste as a password for authentication in the terminal.
I started experiencing this issue on Visual Studio Code in Ubuntu 20.04 yesterday.
I did not make any changes to my GitHub credentials, neither did I change anything in the project, but I run any git command to communicate with my remote branch like:
git pull origin dev
I get the error below:
remote: Repository not found. fatal: Authentication failed for 'https://github.com/MyUsername/my-project.git/'
Here's what worked for me:
I tried recloning the project and then running the git pull command but it did not work.
git clone https://my-git-url
I tried setting my credentials again using the below commands but still no luck:
git config --global user.email "email@example.com"
git config --global user.name "John King"
I tried removing the remote repository and re-adding it using the below commands, but still no luck:
git remote remove origin
git remote add origin https://my-git-url
Finally, I decided to try using my default Ubuntu terminal and it worked fine. My big guess is that it's a bug from Visual Studio Code from the last update that was made some few hours before then (See the screenshot that shows that a Release was done on the same day that I was having the issue). I mean I set up Visual Studio Code using snap
, so probably it might have been updated in the background a few hours before then.
https://i.stack.imgur.com/NHzXM.png
Hopefully, they will get it fixed and git remote operations will be fine again.
Just from your .config file change:
url = http://www.github.com/###user###/Random-Python-Tests
To:
url = http://###user###@github.com/###user###/Random-Python-Tests
Got the above error message when I updated my computer password. Reset my git credentials using the following steps:
Go to Control Panel > User Accounts > Credential Manager > Windows Credentials. You will see Git credentials in the list (e.g. git:https://). Click on it, update the password, and execute git pull/push command from your Git bash and it won't throw any more error messages.
If you are on Windows and trying to push to a Windows server which has domain users working as repository users (TFS), try getting into the TFS URL (i.e. http:\\tfs
) with Internet Explorer. Enter your domain account credentials and let the page appear.
Caution: Only use Internet Explorer! Other browsers won’t change your system credentials.
Now go to Git Bash and change your remote user for the repository like below:
git config user.name "domainName\userName"
And done. Now you can push!
I tried the token verification method and got it to work ~3 times and wasted around 2 hours of time for that. For some reason it does not work very well for our company.
My solution was to change the authentication method from HTTPS to SSH. Here is a Github guide (https://help.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent).
After you have created the SSH key, remember to change the SSH address origin:
git remote add origin git@github.com:user/repo.git
I was getting below error when trying to push to github remote
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Solution SSH Keys were missing on github account
Copy local public ssh keys from ~/.ssh directory Paste to Github > Settings > SSH and GPG Keys > New SSH Key Try ssh -T git@github.com This should output Hi xxxxx! You've successfully authenticated, but GitHub does not provide shell access.
-T
do in ssh
? And why is it not listed here ssh.com/academy/ssh/command#ssh-command-line-options?
-T
option will disable pseudo terminal allocation while connecting to a Git remote server over SSH. Git server will respond to SSH request having -T
option.
For me, I forgot that I had changed the password on github.com, and my keychain for shell authentication never updated to that new password.
Deleting everything Git from my keychain and then rerunning the Git request helped solve the issue, prompting me again for the new password.
Just to chime in here, what fixed the issue for me was I simply canceled out of the initial prompt, the SSH one opened up with my Bitbucket account, I entered the password there and everything worked as expected.
I was facing the same issue on Windows. Most of the time, I normally face the issue due to using multiple Git accounts. If you are on Windows, please do open the terminal as an administrator and try running the commands again. Make sure that you have the administrator access rights.
In case this is tangentially helpful, since this question is now a top hit for http authentication problems with git: Windows Credential Manager had stored my password correctly, and since I was using Git LFS I configured an http URL instead of the usual ssh://.
My problem was that my corporate password policy forced an account password change but I never updated my stored credentials (since I always use an ssh key).
Simply updating the password directly in the Wincred GUI worked: just look for a git:https://<your-url>
entry.
This happened to us after forcing "Two Factor Authentication" before login from Gitlab. We had to paste the text inside id_rsa.pub to Gitlab, and then reintroduce the repository in VS code using the terminal.
https://i.stack.imgur.com/qJHv6.png
https://i.stack.imgur.com/nnulA.png
For me everything was fine, I also tried the Windows Credentials Manager but then also the problem was not resolved. Then suddenly, I got pop up from the firewall, which was the main culprit behind all. After I clicked on allow manually then I could fetch or push to GitHub.
Success story sharing
git remote add origin https://username:access-token@github.com/username/repo.git
to store your personal access token.