I got this error on my console when I tried to use git pull
:
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: unable to access "..." : The requested URL returned error: 403
It's very weird, because I just followed the documentation and created a token two weeks ago on GitHub. The token expires on Tue, Oct 26, 2021. Why has this been removed today?
From August 13, 2021, GitHub is no longer accepting account passwords when authenticating Git operations. You need to add a PAT (Personal Access Token) instead, and you can follow the below method to add a PAT on your system.
Create Personal Access Token on GitHub From your GitHub account, go to Settings => Developer Settings => Personal Access Token => Generate New Token (Give your password) => Fillup the form => click Generate token => Copy the generated Token, it will be something like ghp_sFhFsSHhTzMDreGRLjmks4Tzuzgthdvfsrta
Now follow below method based on your machine:
For Windows OS ⤴ Go to Credential Manager from Control Panel => Windows Credentials => find git:https://github.com => Edit => On Password replace with with your GitHub Personal Access Token => You are Done If you don’t find git:https://github.com => Click on Add a generic credential => Internet address will be git:https://github.com and you need to type in your username and password will be your GitHub Personal Access Token => Click Ok and you are done
For macOS ⤴ Click on the Spotlight icon (magnifying glass) on the right side of the menu bar. Type Keychain access then press the Enter key to launch the app => In Keychain Access, search for github.com => Find the internet password entry for github.com => Edit or delete the entry accordingly => You are done
For a Linux-based OS ⤴ For Linux, you need to configure the local GIT client with a username and email address, $ git config --global user.name "your_github_username"
$ git config --global user.email "your_github_email"
$ git config -l
Once GIT is configured, we can begin using it to access GitHub. Example: $ git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY
> Cloning into `YOUR-REPOSITORY`...
Username:
Linux/Debian (Clone as follows): git clone https://
For PhpStorm If you are using PhpStorm, go to menu Git => pull and select authentication via Personal Access Token. Enter your PAT it will allow you to pull/push the changes.
If you're using macOS, just simply follow these steps:
Go to this link: https://github.com/settings/tokens (Profile -> settings -> developers setting -> personal access tokens). (don't go to repository setting; it's your profile setting) Generate a new token and copy-paste it somewhere safely. Now search for an app in your Mac, named Keychain Access. Search for github.com (if there are multiple GitHub logins then choose Kind: Internet password), double-click it. Click on show password, then enter your Mac's password and hit Enter. Password should be visible by now. Now, just paste the token you generated in step 2 and click Save changes.
And that's it. Enjoy!
If you're using Windows:
Follow steps 1 and 2 as above. Search for an application in your Windows OS, named Credential Manager → then Windows Credentials. Search for github.com and edit the password with the token you have generated on GitHub. Now enjoy!
Developer's hack (shortcode):
git remote set-url origin https://<githubtoken>@github.com/<username>/<repositoryname>.git
While cloning:
git clone https://<username>:<githubtoken>@github.com/<username>/<repositoryname>.git
It will work on every OS (Mac, Windows, or Linux).
Cons: You have to remember or should need to do to each repository in your local. So I'll prefer everyone to use above mentioned steps.
NOTE:
For those who don't have this entry: it could be made. one way to do it is- to clone a project. then it will ask for your username and password. instead of password give it the token and then the entry would be made.
git push
, it prompted for the Personal Access Token. Simply resetting the existing credential did not work.
Use My Account → Settings → Developer settings → Personal access tokens → Generate new token.
git remote set-url origin https://<token>@github.com/<username>/<repo>
git remote -v
simply discloses the key giving the attacker account wide access to your GitHub account.
.git
directory.
For Linux these simple steps can solve your problem
If your Git password is cached in credential.helper, then unset it: git config --local --unset credential.helper Or, If you have set your credentials globally, then: git config --global --unset credential.helper Now go to your GitHub Account settings Click Developer Settings Select Personal Access Generate a token with the given permissions, e.g., Now git pull inside your Git repository Provide a username and the generated token as a password
https://i.stack.imgur.com/j1ETC.png
That is a straightforward solution step by step.
PS: If you are annoyed by Git asking for username/token again and again, follow these three simple steps
Run nano ~/.git-credentials. Remove the GitHub line and save it.
git config --global credential.helper store Risky as physically the token is saved in file ~/.git-credentials
Run git pull and provide the username and password only once
It will not ask for the username and access token again and again now!
GitHub has made changes in password authentication. If you are trying to access git by username and password then it does not allow you. So use a personal access token instead of a password to access git every where.
Here are the steps to generate Personal access tokens.
Click here for Token - https://github.com/settings/tokens
Step 1 - Open GitHub and log in with your credentials.
Step 2 - Click on the Setting menu.
Step 3 - From the Setting menu click on Developer Settings
Step 4 - From the Developer Settings, menu click on Personal access token
Step 5 - From the Personal access token click on the Generate new Token button.
Step 6 - Now fill up required details like Note, Expiration, Select scopes. And then click on Generate Token button.
Step 7 - After that new token has been generated. Copy that generated token and use this token to access Git with username and token.
If you are using windows operating system then please follow the below step.
Open Control Panel => User Accounts => Manage your credentials => Windows Credentials.
It will show all generic credentials. Find your GitHub URL and click on that. Now click on the edit button. And then add the personal access token generated from GitHub into the password field. And click on the Save button.
Now you can access git.
If you are accessing Git in Android Studio, if asked for a password then add the GitHub personal access token instead of your password every where.
This message means that you're using a password instead of a personal access token to access GitHub over HTTPS, and that's no longer allowed. GitHub has disabled password authentication because it's common for people to accidentally leak their passwords, and while a personal access token can be restricted to limit the damage, a password cannot.
If you haven't explicitly entered your password at a prompt, then it's likely you have a credential manager which is saving your password and sending it without prompting you.
You can follow the directions for clearing your credential manager listed in the Git FAQ:
$ echo url=https://account@github.com | git credential reject
You should use this same URL, but replace account
with your own username (e.g., in my case, it would look like echo url=https://bk2204@github.com
).
Then, the next time you try to push or pull, Git will prompt you for a username and password. For the username, enter your GitHub username, and for the password, generate a new personal access token on the appropriate settings page and paste it into the password field. If you're working from the command line, you may not see any indication that the password was successfully pasted; this is normal, so just hit Enter afterwards.
That will save the personal access token in your credential manager for the next time, assuming you have one set up. If you're not sure if you have one set up, run git config credential.helper
and see if it outputs anything.
If you don't have one set up, you should add one so that you don't have to memorize your token. Run one of the following commands, depending on operating system:
git config --global credential.helper manager on Windows;
git config --global credential.helper osxkeychain on macOS;
git config --global credential.helper libsecret on Linux (if available); or
git config --global credential.helper store on Linux if libsecret isn't available.
Then you can try the push or pull again until you're no longer prompted.
git config --global credential.helper osxkeychain
and git config --global credential.helper
but nothing is happening in my console, so I will try the first solution. Just one question, what is the url=https://account@github.com
? The link of my repot or my github?
echo url=https://account@github.com | git credential reject
was just what I needed. Thank you!
Generate an access token in GitHub from Settings → Developer settings.
If you have cloned your repository in the past and made it as origin, then you can change the authentication so,
git remote set-url origin https://<token>@github.com/<username>/<repo>.git
If you are going to clone repository after 13 August 2021, then you can use the normal clone command and set the generated access token in the password field.
find . -type f -path '*/.git/*' -name 'config' -exec sed -i 's%https://github.com/%git@github.com:%g' {} \;
It will recursively search in the .git
folder for any file called config and find and replace the https URL with the git@github one. I'd recommend only doing this on simple repos where you know you have plain vanilla remotes. I haven't tested how it will work on different setups. YMMV!
Simplest solution (May 2022):
Create a new token at Personal access tokens Copy token (Windows: Ctrl + C, macOS: Cmd + C, or click copy icon) Try to push your local repository: git push Enter your GitHub user name Paste the token as your password
For Ubuntu, use the following steps
At https://github.com/settings/tokens, go and generate a token.
git push
username: user_github_username
password: add_generated_token instead of the password.
A one-command simple solution to solve it
If your computer has no SSH key added to the GitHub account, I add information for you to do it at the end of the answer. You should do it first.
After push failed, then do this:
git remote set-url origin git@github.com:{user_id}/{project_name}.git
And push again. Then it works.
Let me show my case in the following. (And I will guide you on how to do your case.)
At the first, when I add, commit, and push, then I meet this issue:
https://i.stack.imgur.com/EHPEQ.png
And then, my current Git log is the following.
https://i.stack.imgur.com/pDhB2.png
In the final, this is my way to solve the issue.
https://i.stack.imgur.com/Iytx1.png
In my case,
{project_name} <-> open-idea-pool {user_id} <-> milochen0418 is the {branch_name} <-> master
(your branch_name maybe is main, but not master)
When I push failed, the only thing I need is this one command:
git remote set-url origin git@github.com:{user_id}/{project_name}.git
Then I push it again by:
git push -u origin {branch_name}
For the example of my case,
git remote set-url origin git@github.com:milochen0418/open-idea-pool.git
git push -u origin master
It works.
-- By the way, this is the process of creating an SSH key to GitHub account.
You can refer to these two links to do it. The information here supports Mac, Windows, and Linux.
Issue on adding SSH key to GitHub Adding a new SSH key to your GitHub account
Furthermore, if you want to clone a new project, you can do the following command:
git clone git@github.com:{user_id}/{project_name}.git
ssh
instead of using username/password(token)
approach. Good answer. Instead of https://github.com/<repo_url>
use git@github.com:<repo_url>
If you're using macOS and do not find the github.com entry in the KeyChain access:
Try to do a Git action
It'll ask for the user name
Enter your GitHub user name
Generate a new key from Personal access tokens
In the password field, enter this newly generated token value
Now you can see a new entry of github.com inside KeyChain Access → login
For Mac, go and create your token. You can only see it once. Copy it and store it securely.
Open up Terminal and run: gh auth login
*gh can be installed using Homebrew
Answer the questions. Make sure you pick HTTPS when asked.
https://i.stack.imgur.com/GpdA0.png
Generating a GitHub personal access token (PAT)
Log in to your GitHub account and open Settings → Developer Settings Personal Access Tokens. Click on Generate New Token.
Do not forget to copy and the token after generation. It is accessible only once.
Windows
Open Control Panel → User Accounts → Credential Manager. Now, look for git:https://github.com. Click on Edit. Replace the password with the GitHub Personal Access Token.
MAC
Click on Spotlight Icon and search for Keychain Access. Inside Keychain Access, search for github.com. Now, look for the internet password entry for github.com. Update the entry.
git push
, it prompted for the Personal Access Token. Simply resetting the existing credential did not work.
Go to Settings → Developer settings → generate a new token if it does not exist.
Or copy the token if it exists.
https://i.stack.imgur.com/z6MLO.png
Then set the token:
git remote set-url origin https://<token>@github.com/<username>/<repo>.git/
I was using git pull
on Linux with a password before.
If that is the case, the only thing you need to do is use token in place of password.
Generate an access token by going to Personal access tokens.
Here is example of git pull
git pull
Username for 'https://github.com': gitusername
Password for 'https://yourusername@github.com': //Then enter generated token
First create the token on GitHub:
Click on the profile picture and in the menu select Settings Select Developer Settings in the left menu at the bottom Select Personal Access tokens in the left menu (third option) Select Generate new token and follow the next steps.
If you have not installed GitHub CLI, you would not find it in your keychain Access. Therefore you should install it first.
Install GitHub CLI for macOS brew install gh For Windows: winget install gh scoop install gh choco install gh On the command line, enter gh auth login, follow the prompts, and provide the following answers ? What account do you want to log into? GitHub.com ? What is your preferred protocol for Git operations? HTTPS ? Authenticate Git with your GitHub credentials? Yes ? How would you like to authenticate GitHub CLI? Paste an authentication token Paste the token you created on GitHub and press Enter.
Mac users -- a simple solution.
Set up the personal access token in GitHub:
Settings → Developer Settings → Personal access token
Open Keychain → type "GitHub"
Change the password to the personal access token.
Try commit/pushing.
Select "Always allow" and business is as usual.
To those using Sourcetree with an existing repository you must update your repository URL like so https://<your_token>@github.com/username/repo.git
This was taken from this answer.
It worked!
After getting the token key as said here:
Create Personal Access Token on GitHub From your GitHub account go to Settings => Developer Settings => Personal Access Token => Generate New Token (Give your password) => Fillup the form => click Generate token => Copy the generated Token (it will be something like ghp_sFhFsSHhTzMDreGRLjmks4Tzuzgthdvfsrta)
use the following in your terminal:
git clone https://your_username:your_github_token@github.com/username/private-repo.git
In Linux, you can generate a new access token in GitHub and directly replace it in place of the password in the ~.git-credentials
file.
The password section starts with :
and ends with @
.
I was not able to clone the project that was always giving this error. The solution I encouraged was, after having generated the token as the post was spoken in the post, I did as described below.
Using a personal access token for the cloning of a new project.
For cloning, also you just need to modify the URL as you have done in step 2.
The older way to clone a repository:
git clone repository_URL folder_name
git clone https://github.com/<user>/<repository> my_project
The new way of cloning with a personal access token:
git clone https://<token>@github.com/<user>/<repository> my_project
I share my solution.
As a security precaution, GitHub automatically removes personal access tokens that haven't been used in a year. To provide additional security, we highly recommend adding expiration to your personal access tokens.
Just follow Creating a token.
For Mac users
Generate a token and set it in the keychain.
This quick video explains it well.
For Windows Users
Just instead of the keychain, you need to set up Credential Manager with the newly generated token.
Here is a quick video for Windows
A quick solution for Windows users
Open Credential Manager and just remove the already-saved credentials for Git: https://github.com.
https://i.stack.imgur.com/tyx1w.jpg
After this step, run the command again for pull/push in the terminal. GitHub will ask to log in with your default browser automatically (make sure you are logged in with GitHub in the default browser).
https://i.stack.imgur.com/8oNcA.jpg
After successful login, we got this message:
https://i.stack.imgur.com/Rgn4f.jpg
For more help related to this, you can also watch this video.
Android Studio Arctic Fox Solution (Windows 10)
I was authenticated in Android Studio Arctic Fox (latest version) using a personal access token, but still, I was getting this error on August 14, 2021:
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
I generated a new access token on github.com, removed my GitHub account from Android Studio, and added the account again with the new access token. But still, it was showing the same error.
Reading other solutions on Stack Overflow, I downloaded the GitHub CLI, and added my GitHub account in the Windows command prompt with the access token successfully, and tried to push the repository from Android Studio again, which again failed.
Then following this article, I did the following at the command line:
cd <project-directory>
git remote set-url origin https://<TOKEN>@github.com/<user_name>/<repo_name>.git
I pushed again from Android Studio, and it worked finally!
In three commands:
First create a token as indicated in the official documentation: Creating a personal access token
Then reset the Git credentials
git config --global --unset credential.helper
Clone or pull your repositories:
`git pull` or `git clone`
Then enter the token as your password.
If you want to save your token, you can use:
git config --global credential.helper cache
Recently GitHub updated their remote: Support for password authentication. Which was removed on August 13, 2021 to use PAT (personal access token) instead for accessing the GitHub API.
You can read about in the blog post here.
Now to enable PAT
Log in to your GitHub account.
Follow this write-up for the next actions.
Now to use the token on the command line, do this:
git clone https://github.com/username/repo.git
Username: your_username
Password: your_token
Note that your token has an expiry time and must be kept privately and used whenever you need to authenticate on the command line.
Heads up
If your are cloning into a repository that is owned by an:
Organisation
Make sure your are member of that organisation
Or if some personal repository,
Make sure you have enabled the following
The organisation/personal will need to enable remote cloning and forking like so:
Go to organisation settings:
https://i.stack.imgur.com/s5Jie.png
Enable member privileges:
For people who want to use Sourcetree:
Just copy like this at the source path:
https://<token>@github.com/<username>/<repo>
https://i.stack.imgur.com/7vp7Q.jpg
The best solution I have found so far:
Install GitHub CLI, brew install gh or check how to install for other OSes Type gh auth login in your terminal Follow through like this: What account do you want to log into? Choose GitHub.com What is your preferred protocol for Git operations? Choose HTTPS Authenticate Git with your GitHub credentials? Choose Yes How would you like to authenticate GitHub CLI? Choose Login with a web browser (Copy the one-time code and paste in the browser) Press 'Enter' to open github.com in your browser
If you want to clone for first time:
git clone https://<repository_owner>:<personal_access_token>@github.com/<repository_owner>/<repo>.git
Success story sharing