Dae*_*mes 389 git github token git-pull github-api
当我尝试使用时,我的控制台上出现此错误git pull:
远程:2021 年 8 月 13 日移除了对密码身份验证的支持。请改用个人访问令牌。远程:请参阅https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/了解更多信息。致命:无法访问“...”:请求的 URL 返回错误:403
这很奇怪,因为我两周前只是按照文档在 GitHub 上创建了一个令牌,该令牌将于 2021 年 10 月 26 日星期二到期。为什么今天删除了它?
sta*_*sta 483
从 2021 年 8 月 13 日起,GitHub 在对 Git 操作进行身份验证时不再接受帐户密码。您需要添加PAT(个人访问令牌),您可以按照以下方法在您的系统上添加 PAT。
在 GitHub 上创建个人访问令牌
从您的 GitHub 帐户,转到Settings => Developer Settings => Personal Access Token => Generate New Token (Give your password) => Fill up the form => 单击Generate token => Copy the generated Token,它将类似于
ghp_sFhFsSHhTzMDreGRLjmks4Tzuzgthdvfsrta
现在根据您的机器遵循以下方法:
对于 Windows 操作系统?
从控制面板转到凭据管理器=> Windows 凭据=> 查找=>编辑=> 在密码中替换为你的GitHub 个人访问令牌=> 你完成了
git:https://github.com如果您没有找到
git:https://github.com=> 单击添加通用凭据=> 互联网地址将是git:https://github.com,您需要输入您的用户名和密码将是您的GitHub 个人访问令牌=> 单击确定,您就完成了
对于 macOS ?
单击菜单栏右侧的 Spotlight 图标(放大镜)。键入Keychain access然后按 Enter 键启动应用程序 => 在 Keychain Access 中,搜索
github.com=> 查找Internet 密码条目github.com=> 相应地编辑或删除该条目 => 大功告成
对于基于 Linux 的操作系统?
对于 Linux,您需要使用用户名和电子邮件地址配置本地 GIT 客户端,
Run Code Online (Sandbox Code Playgroud)$ git config --global user.name "your_github_username" $ git config --global user.email "your_github_email" $ git config -l一旦配置了 GIT,我们就可以开始使用它来访问 GitHub。例子:
Run Code Online (Sandbox Code Playgroud)$ git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY > Cloning into `Spoon-Knife`... $ Username for 'https://github.com' : username $ Password for 'https://github.com' : give your personal access token here现在在您的计算机中缓存给定的记录以记住令牌:
Run Code Online (Sandbox Code Playgroud)$ git config --global credential.helper cache如果需要,您可以随时通过以下方式删除缓存记录:
Run Code Online (Sandbox Code Playgroud)$ git config --global --unset credential.helper $ git config --system --unset credential.helper现在尝试拉
-v以验证Run Code Online (Sandbox Code Playgroud)$ git pull -v
Linux/Debian (克隆如下):
Run Code Online (Sandbox Code Playgroud)git clone https://<tokenhere>@github.com/dadenewyyt/react-projects.git
对于PhpStorm
如果您使用 PhpStorm,请转到菜单Git => pull并选择通过Personal Access Token 进行身份验证。输入您
PAT将允许拉/推更改。
kar*_*agi 212
Keychain Access.github.com(如果有多个 GitHub 登录然后选择Kind: Internet password),双击它。就是这样。享受!
github.com并编辑密码token。现在享受吧!git remote set-url origin https://<githubtoken>@github.com/<username>/<repositoryname>.git
Run Code Online (Sandbox Code Playgroud)
克隆时:
git clone https://<username>:<githubtoken>@github.com/<username>/<repositoryname>.git
Run Code Online (Sandbox Code Playgroud)
它适用于所有操作系统(Mac、Windows 或 Linux)。
缺点:您必须记住或应该需要对本地的每个存储库进行操作。所以我更喜欢每个人都使用上述步骤。
ßãl*_*ãjî 140
我的帐户 > 设置 > 开发者设置 > 个人访问令牌生成新令牌
git remote set-url origin https://<token>@github.com/<username>/<repo>
Run Code Online (Sandbox Code Playgroud)
bk2*_*204 51
此消息意味着您正在使用密码而不是个人访问令牌来通过 HTTPS 访问 GitHub,并且不再允许这样做。GitHub 已禁用密码身份验证,因为人们经常会意外泄露他们的密码,虽然可以限制个人访问令牌以限制损害,但密码不能。
如果您没有在提示时明确输入密码,那么您可能有一个凭证管理器,它会保存您的密码并在不提示您的情况下发送密码。
您可以按照Git 常见问题中列出的清除凭证管理器的说明进行操作:
$ echo url=https://account@github.com | git credential reject
Run Code Online (Sandbox Code Playgroud)
您应该使用相同的 URL,但替换account为您自己的用户名(例如,在我的情况下,它看起来像echo url=https://bk2204@github.com)。
然后,下次您尝试推送或拉取时,Git 会提示您输入用户名和密码。对于用户名,输入您的 GitHub 用户名,对于密码,在相应的设置页面上生成一个新的个人访问令牌并将其粘贴到密码字段中。如果您从命令行工作,您可能看不到任何密码已成功粘贴的指示;这是正常的,所以Enter以后就打吧。
假设您已经设置了一个,这将在您的凭证管理器中保存个人访问令牌以备下次使用。如果您不确定是否已设置,请运行git config credential.helper并查看它是否输出任何内容。
如果你没有设置,你应该添加一个,这样你就不必记住你的令牌。根据操作系统运行以下命令之一:
git config --global credential.helper manager 在 Windows 上;git config --global credential.helper osxkeychain 在 macOS 上;git config --global credential.helper libsecret在 Linux 上(如果可用);或者git config --global credential.helper store在 Linux 上如果libsecret不可用。然后您可以再次尝试推或拉,直到不再提示您。
Uma*_*yat 46
如果您的 Git 密码缓存在credential.helper 中,则取消设置它:
git config --local --unset credential.helper
Run Code Online (Sandbox Code Playgroud)
或者,如果您已全局设置凭据,则:
git config --global --unset credential.helper
Run Code Online (Sandbox Code Playgroud)
现在转到您的 GitHub帐户设置
点击开发者设置
选择个人访问
生成具有给定权限的令牌,例如,
现在git pull在您的 Git 存储库中
提供用户名和生成的令牌作为密码
这是一个简单的一步一步的解决方案。
运行nano ~/.git-credentials。删除 GitHub 行并保存。
git config --global credential.helper store
令牌保存在文件中的物理风险 ~/.git-credentials
运行git pull并只提供一次用户名和密码
它现在不会一次又一次地要求用户名和访问令牌!
小智 31
GitHub 对密码验证进行了更改。如果您尝试通过用户名和密码访问 Git,那么它不允许您。所以使用个人访问令牌而不是密码来访问任何地方的 Git。
以下是生成个人访问令牌的步骤。
单击此处 - https://github.com/settings/tokens
第 1 步 - 打开 GitHub 并使用您的凭据登录。
第 2 步 - 单击设置菜单。
第 3 步 - 从设置菜单中单击开发人员设置
第 4 步 - 从Developer Settings菜单中单击Personal access token
步骤 5 - 从个人访问令牌中单击生成新令牌按钮。
第 6 步 - 现在填写所需的详细信息,例如Note、Expiration、Select scopes。然后点击下方的Generate Token按钮。
步骤 7 - 在生成新令牌之后。复制生成的令牌并使用此令牌通过用户名和令牌访问 Git。
如果您使用的是 Windows,请按照以下步骤操作。
打开控制面板=> 用户帐户=> 管理您的凭据=> Windows 凭据。
它将显示所有通用凭据。找到你的 GitHub URL 并点击它。现在点击编辑按钮。然后将GitHub生成的个人访问令牌添加到密码字段中。并点击按钮。Save
现在您可以访问 Git。
如果您在 Android Studio 中访问 Git,如果要求输入密码,请在任何地方添加 GitHub个人访问令牌而不是您的密码。
Abd*_*shy 27
从设置 > 开发人员设置在 Github 中生成访问令牌。
如果您过去克隆了您的仓库并将其设为源,那么您可以更改身份验证,
git remote set-url origin https://<token>@github.com/<username>/<repo>.git
Run Code Online (Sandbox Code Playgroud)
如果您打算在 2021 年 8 月 13 日之后克隆 repo,那么您可以使用普通的 clone 命令并在密码字段中设置生成的访问令牌
Maf*_*Maf 16
您可以强制您的计算机仅使用 SSH 而不是 HTTPS:
git config --global url."git@github.com:".insteadOf "https://github.com/"
Run Code Online (Sandbox Code Playgroud)
Muh*_*och 15
对于Ubuntu以下步骤
https://github.com/settings/tokens去生成一个令牌。
git push
username: user_github_username
password: add_generated_token 而不是密码。
die*_*iek 15
对于 Mac,请创建您的令牌。您只能看到一次。复制并安全保存。
打开终端并运行:gh auth login
*gh可以使用Homebrew安装
回答问题。确保在询问时选择 HTTPS。
小智 12
转到设置\xe2\x86\x92开发者设置\xe2\x86\x92 如果不存在,则会生成新令牌。
\n或者复制令牌(如果存在)。
\n\n然后设置令牌:
\ngit remote set-url origin https://<token>@github.com/<username>/<repo>.git/\nRun Code Online (Sandbox Code Playgroud)\n
Pas*_*heu 11
首先在 GitHub 上创建 token:
如果您尚未安装 GitHub CLI,则不会在钥匙串访问中找到它。因此您应该先安装它。
安装适用于 macOS 的 GitHub CLI
brew install gh
Run Code Online (Sandbox Code Playgroud)
对于 Windows:
winget install gh
scoop install gh
choco install gh
Run Code Online (Sandbox Code Playgroud)
在命令行中输入gh auth login,按照提示操作,并提供以下答案
?您想登录什么帐户? GitHub.com
?您首选的 Git 操作协议是什么? HTTPS
?使用您的 GitHub 凭据对 Git 进行身份验证? 是的
?您希望如何验证 GitHub CLI?粘贴身份验证令牌
粘贴您在 GitHub 上创建的令牌并按Enter。
小智 9
生成 GitHub 个人访问令牌 (PAT)
Generate New Token。不要忘记复制和一代又一代的令牌。它只能访问一次。
视窗
git:https://github.com.苹果电脑
Keychain Access。如果你的电脑没有在 GitHub 账号中添加 SSH 密钥,我会在答案的最后添加信息给你做。你应该先做
推送失败后,再做这个
$ git remote set-url origin git@github.com:{user_id}/{project_name}.git
并再次推送。然后就是工作了。
让我在下面展示我的案例。
(我将指导您如何处理您的案例)
然后,我当前的 GIT 日志如下。
最后,这是我解决问题的方法。
就我而言,
{project_name} <-> open-idea-pool
{user_id} <-> milochen0418 是
{branch_name} <-> 主
(你的 branch_name 可能是 main,但不是 master)
当我推送失败时,我唯一需要的是一个命令。
$ git remote set-url origin git@github.com:{user_id}/{project_name}.git
然后我通过$ git push -u origin {branch_name}再次
推送
例如我的情况,
$ git remote set-url origin git@github.com:milochen0418/open-idea-pool.git
$ git push -u origin master
这是工作。
--
顺便说一下,这是为GitHub帐户创建SSH密钥的过程。
你可以参考这两个链接来做。此处的信息支持 Mac、Windows 和 Linux。
(1)向 GitHub 添加 SSH 密钥的问题
(2) https://docs.github.com/en/enterprise/2.15/user/articles/adding-a-new-ssh-key-to-your-github-account
我git pull之前是在Linux上使用密码的。
如果是这种情况,您唯一需要做的就是使用token代替password。
转至个人访问令牌生成访问令牌。
这是一个例子git pull
git pull
Username for 'https://github.com': gitusername
Password for 'https://yourusername@github.com': //Then enter generated token
Run Code Online (Sandbox Code Playgroud)
对于那些将Sourcetree与现有存储库一起使用的用户,您必须像这样更新存储库 URL
https://<your_token>@github.com/username/repo.git
这是摘自这个答案。
如果您想第一次克隆:
git clone https://<repository_owner>:<personal_access_token>@github.com/<repository_owner>/<repo>.git
Run Code Online (Sandbox Code Playgroud)
有效!
获取令牌密钥后,如下所述:
从您的 GitHub 帐户在 GitHub 上创建个人访问令牌
转到设置=>开发人员设置=>个人访问令牌=>生成新令牌(提供您的密码)=>填写表单=>单击生成令牌=>复制生成的令牌(类似于
ghp_sFhFsSHhTzMDreGRLjmks4Tzuzgthdvfsrta)
在您的终端中使用以下命令:
git clone https://your_username:your_github_token@github.com/username/private-repo.git
Run Code Online (Sandbox Code Playgroud)
小智 5
Mac 用户——简单的解决方案。
在 GitHub 中设置个人访问令牌
设置 -> 开发者设置 -> 个人访问令牌
打开钥匙串 -> 输入“Github”
将密码更改为个人访问令牌
尝试提交/推送。
选择“始终允许”,一切照旧。
| 归档时间: |
|
| 查看次数: |
183390 次 |
| 最近记录: |