ChatGPT解决这个技术问题 Extra ChatGPT

Message "Support for password authentication was removed. Please use a personal access token instead."

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?

@JuanC here is quick tutorial for mac youtu.be/iKf8-hhdWjs
Thank you for the tutorial @VeKe! I was able to fix it but it's a bit misleading when I am asked for the "password" but then it works with the token.
@JuanC glad it helped, are you working with windows or mac?
@munchschair it could be that you are set to use HTTPS URLs for your repo instead of SSH URLs. Have a look here under the section "Switching remote URLs from HTTPS to SSH" docs.github.com/en/get-started/getting-started-with-git/…
Perhaps it is time to accept an answer (among the 29)?

M
Matt

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: Password:

Linux/Debian (Clone as follows): git clone https://@github.com//.git

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.


Be sure to save the token on some local file or in some cloud.Upvoted.
Given that the OP states they already created a token two weeks ago, this doesn't address the actual problem.
Ummmm, it isn't asking for a token when I clone my repo, how should I proceed then?
Same experience as @Prhyme. I am not able to get git to prompt me for username and password, even trying to clone private repos, push to repos, etc. When I go to push to a repo, it continues to give the "Support for password authentication was removed" message, without prompting for anything.
For mac first time, when you are prompted for a password when you pushing the code to your repo, enter the access token, It will add the token in the keychain and it won't prompt again.
k
kartik tyagi

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.


There's no such entry for me (Mac)
I found that on Windows, it was necessary to delete the existing credential in the credential manager. Then, the next time I tried to do a git push, it prompted for the Personal Access Token. Simply resetting the existing credential did not work.
saved my day 👍 developer heck shortcut was great for me, just removed old remote url and added new one (mac, but i belive this is the case for all OS)
For those who does not have this entry: it should 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.
using the generated token as github password on terminal screen.
P
Peter Mortensen

Use My Account → Settings → Developer settings → Personal access tokens → Generate new token.

git remote set-url origin https://<token>@github.com/<username>/<repo>

Note that this seems to require running this command in each repo for that repo to be reset with the new credentials. Hopefully there is a global solution.
This one perfectly worked for me. The above one with maximum vote didn't work.
Thanks! Using token as password not work, but adding this work awesome
This is very insecure, not only does it allow anyone on the local system with read access to the local repo control over that repo, git remote -v simply discloses the key giving the attacker account wide access to your GitHub account.
@ßãlãjî OS key managers and browsers take grate pains to secure credentials. Normal git workflow do not expose passwords or ssh private keys to other users with read access to a repo. The above advice does. It allows anyone with read access to a copy of a local repo, including for example a shared work or school filesystem, to see the user's clear text Personal Access Token. This extends to archived copies as well, such as source tarballs that retain the .git directory.
P
Peter Mortensen

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!


Those are a lot of permissions. What are you using that token for?
It all depends on the use case you want to use that token for. So select those permissions according to your use case.
It only worked when I followed this.
Is there a way to save it to a custom location? Perhaps it can help reduce the risk?
Do NOT do that with permissions.
J
Jaydip Meghapara

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.


You are my hero. At first it did not work because for me the correct GitHub URL in the credential manager was git:gitshub.com and not github.com/username. Maybe it helps someone. Also I am of the opinion the hatefulness of GitHub knows no bounds.
There's a alternative way as well to do that: you can use direct ssh key as well: youtu.be/egdJy_FWUh4
So basically password should be replaced by git token everywhere.
And, if I am using Linux command line ? Edit: answer: just use the token as password...
@Lars Wissler Thank you so much, you saved me! git:github.com is the correct address indeed.
P
Peter Mortensen

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.


Thanks for the info, I just tested 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?
check out stackoverflow.com/questions/68776300/… to change the password on a mac
The technique I've mentioned above will clear the password on any system so Git will prompt for it again. That's why we documented it in the FAQ, because the directions are different for each individual OS and credential helper and it's too hard to write a single answer that applies to all systems when it involves the GUI.
echo url=https://account@github.com | git credential reject was just what I needed. Thank you!
This was the way to fix things, thanks! Apparently I had done everything right according to the numberous reminders, but nowhere did it actually say how to start using the tokens...
P
Peter Mortensen

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.


And it should be ".git".
If you're like me and have years worth of git repos that you used password based auth on. I have made this: 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!
I tried removing the username and it worked: git remote set-url origin https://@github.com/.git
P
Peter Mortensen

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


P
Peter Mortensen

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.


M
Milo Chen

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

I bet this works only because you have an SSH key added to the github account.
Maybe add the process of creating an SSH key to the answer?
Thanks a lot. I will add some simple processes of creating an SSH key tomorrow. GitHub official doc also introduces how to do it, but that's is too complicated for junior people.
I've done to add the process of creating an SSH key to github account by refer two excellent links.
Advisable to use ssh instead of using username/password(token) approach. Good answer. Instead of https://github.com/<repo_url> use git@github.com:<repo_url>
P
Peter Mortensen

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


actually worked for me!
P
Peter Mortensen

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


Yes, but please provide it as text, not as a screenshot.
@PeterMortensen Thanks for your input
P
Peter Mortensen

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.


I found that on Windows, it was necessary to delete the existing credential in the credential manager. Then, the next time I tried to do a git push, it prompted for the Personal Access Token. Simply resetting the existing credential did not work.
P
Peter Mortensen

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/

V
VK321

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

In my case after doing "git pull", just do "git pull" a second time and you should get prompted for the username and password automatically. It shouldn't require you go to delete your password in the OS settings.
P
Peter Mortensen

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.


P
Peter Mortensen

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.


P
Peter Mortensen

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.


P
Peter Mortensen

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

P
Peter Mortensen

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 @.


J
Jackson Meires

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.


P
Peter Mortensen

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.


P
Peter Mortensen

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


P
Peter Mortensen

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.


P
Peter Mortensen

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!


P
Peter Mortensen

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

P
Peter Mortensen

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:


P
Peter Mortensen

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


P
Peter Mortensen

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


In case someone is looking for way to install brew on Arch based distros: gist.github.com/fardjad/114ebf50a0dd031418bb63b3b134db51
Á
Álvaro Agüero

If you want to clone for first time:

git clone https://<repository_owner>:<personal_access_token>@github.com/<repository_owner>/<repo>.git

关注公众号,不定期副业成功案例分享
Follow WeChat

Success story sharing

Want to stay one step ahead of the latest teleworks?

Subscribe Now