Github企业版 - 远程: Git操作不支持密码验证

57

我的git一直正常工作,但突然出现以下问题,

我尝试重置了缓存中的

credentials.helper

并已经查看了几乎所有我能够找到的stackoverflow答案

remote: Password authentication is not available for Git operations.
remote: You must use a personal access token or SSH key.
remote: See https://github.ibm.com/settings/tokens or
'https://github.ibm.com/WBurney/Blockchain_SDO.git/': 
The requested URL returned error: 403
感谢

我已经尝试重置缓存……你实际上做了什么?你可能已经阅读了很多答案,但我们不知道你做了什么来达到这个状态。 - Tim Biegeleisen
9个回答

61
如果您已经在GitHub企业账户上注册了一个公共SSH密钥,您可以使用SSH URL来绕过这个问题。
cd /path/to/repo
git remote set-url origin git@github.ibm.com:WBurney/Blockchain_SDO.git

然后,任何类似于git push/git fetch/git pull/git ls-remote的命令将使用由git remote set-url设置的SSH URL。
但是关于您的原始问题,请尝试并按照“为命令行创建个人访问令牌”进行操作。
如果您使用的是Mac,请从OSX Keychain更新您的凭据
您可能需要先删除旧的缓存凭据
(正如RayLoveless所评论的那样)
drazen Bjelovuk评论中所确认的那样:

将密码更新为个人令牌在我的OSX钥匙串中对我有效。


我按照以下步骤将我的ssh密钥添加到git中: https://git.ng.bluemix.net/help/ssh/README.md 然后,我使用以下命令设置远程URL: git remote set-url origin git@github.ibm.com:WBurney/Blockchain_SDO.git 感谢您的帮助。 - Muhammad Raafay Khan
@MuhammadRaafayKhan 你的操作系统和git版本是什么? - VonC
Ubuntu 17.04和git版本2.11.0 - Muhammad Raafay Khan
1
@RayLoveless 对于Mac使用“erase”命令,对于Windows使用“reject”命令:https://stackoverflow.com/a/59890860/6309 - VonC
1
@DrazenBjelovuk 感谢您的反馈。我已将您的评论包含在答案中,以增加其可见性。 - undefined
显示剩余8条评论

46

我使用的另一种解决方案是通过Windows凭据管理器更改凭据:

1) 清除缓存的凭据 (感谢@Rayloveless).

2) 按照此链接中的步骤创建一个访问令牌。

  • 在任何页面的右上角,单击您的个人资料照片。
  • 单击设置
  • 在左侧边栏中,单击开发人员设置
  • 个人访问令牌
  • 生成新令牌

3) 转到“Windows凭据管理器”,查找您的Github企业帐户。

4) 单击修改并将密码替换为您生成的令牌。


添加链接可以,但要提供示例以保证答案的有效性,以防链接被删除。 - Jasurbek
1
这就是让我成功的那个。谢谢! - Gigazelle
2
谢谢。我需要清除我的缓存凭据。 - RayLoveless
非常感谢。它对我有用。 - Ananta Chandra Das
这就是诀窍! - ForcedFakeLaugh

16

尝试以下代码:

git clone https://<user-name>:<git-token>@<github-path.git>

12

您需要重置凭据。打开GIT CMD并输入以下命令。

git credential reject

按回车键。光标将等待下一次输入。然后输入

protocol=https
host=git.example.com

将 git.example.com 替换为你的链接。

按两次“回车”键,让 git 知道这是命令的结尾。现在,在进行任何 git 操作之前,你需要两个东西,因为它将首先验证你的用户名和密码。

  1. 用户名 - 它将出现在你的徽标附近作为已登录用户。例如,这是我的。请给出确切的用户名:

enter image description here

  1. 密码 -
  • 单击“设置”
  • 在左侧边栏中,单击“开发者设置”
  • 个人访问令牌
  • 生成新的令牌(将此令牌复制到某个地方。它不会再次显示)

接下来,进入 git 命令行并执行你的 git 操作。 例如 -

git clone https://consulting-github.com/Rohan-Chikorde/example.git

启动后,它将提示输入用户名和密码。按照上面所述,输入用户名示例:Rohan-Chikorde 和密码:e67682yourgeneratedtoken,然后你就可以开始了。


10

这个被接受的答案仅适用于ssh,而不适用于https。

缓存重置命令似乎最近发生了变化。对我来说,这最终使它工作了。

git credential reject
protocol=https
host=github.<YOUR_COMP>.com

1
需要在最后输入一个空行(按两次<Enter>)来表示您已经完成添加数据。 - Abid H. Mujtaba

3

对我来说,这是一个容易理解的过程:

  1. 生成我的访问令牌
  2. git remote remove origin
  3. git remote add origin https://<token>@<git_url>.git
  4. 现在再试一下命令(推送、拉取等)。

0

对我来说,当我删除旧的生成令牌并生成新的令牌并使用它时,它起作用了


0

首先,您应该尝试生成个人访问令牌(PAT),然后将其作为密码放入凭据管理器中,以便登录您的GitHub账户。

具体步骤如下:进入凭据管理器 > Windows凭据 > GitHub(在通用凭据下), 然后将您的PAT作为密码输入即可。

如果您仍然无法克隆存储库,则可以尝试Ajay在此处提供的方法,这对我有用过: git clone https://<user-name>:<git-token>@<github-path.git>


-5
git remote set-url origin git@github.ibm.com:WBurney/Blockchain_SDO.git

上述git命令将起作用


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接