GitHub:用户名或密码无效

时间:2015-03-27 09:23:02

标签: git github

我在GitHub上托管了一个项目。我试图推动我对主人的修改时失败了。我总是收到以下错误消息

Password for 'https://git@github.com': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://git@github.com/eurydyce/MDANSE.git/'

但是,将我的ssh密钥设置为github似乎没问题。的确,当我做ssh -T git@github.com时,我得到了

Hi eurydyce! You've successfully authenticated, but GitHub does not provide shell access.

这似乎表明从那一方来说一切正常(eurydyce是我的github用户名)。我严格遵循github上给出的指令和许多堆栈讨论的建议,但没办法。你知道我做错了什么吗?

26 个答案:

答案 0 :(得分:687)

启用双因素身份验证(2FA)后,您在尝试使用git clonegit fetchgit pullgit push时可能会看到类似内容:

$ git push origin master
Username for 'https://github.com': your_user_name
Password for 'https://your_user_name@github.com': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/your_user_name/repo_name.git/'

为什么会这样?

来自GitHub Help documentation

  

启用2FA后,您需要输入个人访问令牌,而不是2FA代码和GitHub密码。

     

...

     

例如,当您使用命令行上的Git使用带有HTTPS URL的git clonegit fetchgit pullgit push等命令访问存储库时,您必须提供提示输入用户名和密码时,您的GitHub用户名和个人访问令牌。命令行提示符不会指定您在要求输入密码时应输入个人访问令牌。

如何解决

  1. 生成Personal Access Token。 (关于Creating a personal access token for the command line的详细指南。)
  2. 复制个人访问令牌。
  3. 重新尝试您尝试的命令,并使用个人访问令牌代替您的密码。
  4. 相关问题: https://stackoverflow.com/a/21374369/101662

答案 1 :(得分:185)

https://git@github.com/eurydyce/MDANSE.git不是ssh网址,而是https网址(需要您的GitHub帐户名称,而不是“git”)。

尝试使用ssh://git@github.com:eurydyce/MDANSE.gitgit@github.com:eurydyce/MDANSE.git

git remote set-url origin git@github.com:eurydyce/MDANSE.git

OP Pellegrini Eric添加:

  

这就是我在~/.gitconfig文件中所做的,其中包含当前以下条目[remote "origin"] url=git@github.com:eurydyce/MDANSE.git

这不应该在您的全局配置中(~/中的那个) 您可以在回购中检查git config -l:该网址应在 local 配置中声明:<yourrepo>/.git/config

因此,在执行git remote set-url命令时,请确保您处于repo路径中。

答案 2 :(得分:33)

解决步骤:

  1. 控制面板
  2. 凭据管理器
  3. 点击窗口凭据
  4. 在“通用凭据”部分中,将存在git url,更新用户名和密码
  5. 重新启动Git Bash并尝试克隆

答案 3 :(得分:29)

  

如果像我一样,您刚刚更新密码并运行git push来解决此问题,那么这里有一个超级简单的修复程序。

仅适用于Mac用户。您需要删除GitHub的OSX钥匙串访问条目。您可以通过运行以下命令在终端上进行操作。

通过命令行删除您的凭据

通过命令行,您可以直接使用凭据帮助器来擦除钥匙串条目。

为此,请键入以下命令:

git credential-osxkeychain erase
host=github.com
protocol=https

# [Now Press Return]

如果成功,则不会打印任何内容。要测试它是否有效,请尝试从GitHub克隆存储库,或者像我的案例git push一样再次运行上一个操作。如果提示您输入密码,则钥匙串条目已删除。

答案 4 :(得分:22)

使用https:// URL连接到远程存储库时,Git不会使用SSH作为身份验证,而是尝试通过HTTPS进行基本身份验证。通常,您只需使用没有用户名的网址,例如https://github.com/username/repository.git,然后Git会提示您输入用户名(您的GitHub用户名)和密码。

如果您使用https://something@github.com/username/repository.git,那么您已预设Git将用于身份验证的用户名:something。由于您使用了https://git@github.com,因此Git会尝试使用您的密码当然不起作用的git用户名登录。因此,您必须使用您的用户名。

替代方案实际上是使用SSH进行身份验证。这样你就不必一直输入你的密码;并且由于它似乎已经起作用,这就是你应该使用的。

要做到这一点,你需要改变你的远程URL,所以Git知道它需要通过SSH连接。格式如下:git@github.com:username/repository。要更新您的URL,请使用以下命令:

git remote set-url origin git@github.com:username/repository

答案 5 :(得分:8)

只需尝试将其再次推送到您的分支即可。这将再次询问您的用户名和密码,以便您可以输入更改后的密码。这样您的新密码将再次存储在缓存中。

答案 6 :(得分:5)

有时由于密码错误而发生该问题。请检查您是否与AD密码(Active Directory密码)链接,并且您最近更改了AD密码,但仍尝试使用旧密码使用git命令。

更新旧的AD密码

Control Panel > Credential Manager > Windows Credential > change github password with my new AD password

答案 7 :(得分:5)

我使用以下命令获得了成功。

git config --unset-all credential.helper
git config --global --unset-all credential.helper
git config --system --unset-all credential.helper

尝试让我知道这些是否适合您。

答案 8 :(得分:4)

只需尝试:

event.target.__data__.type

希望获得帮助

答案 9 :(得分:2)

在这种情况下,如果出现此错误消息:

  • 使用 github进行企业开发
  • 在git config中使用 credential.helper = wincred
  • 使用您最近更改 Windows凭据

然后看这个答案: https://stackoverflow.com/a/39608906/521257

Windows将凭据存储在凭据管理器中,将其清除或更新。

答案 10 :(得分:2)

尝试使用git pull代替git pull origin master

我更改了密码,第一个命令给出了错误:

$ git pull
remote: Invalid username or password.
fatal: Authentication failed for ...

git pull origin master之后,它要求输入密码,并且似乎会自我更新

答案 11 :(得分:2)

从bitbucket克隆应用程序时我得到了这个信息:

Cloning into 'YourAppName'...
Password for 'https://youruser id': 
remote: Invalid username or password

我解决了。在这里,您需要为您的用户名创建密码

  1. 单击您的个人资料和设置     Click on Your profile and settings

  2. 然后创建应用程序密码,选择将生成您的名称密码,将该密码粘贴到终端     Create app password

答案 12 :(得分:1)

在github上禁用2因子身份验证对我有用。

我看到有一个删除的答案说这句话,删除原因是“不回答问题”。如果有效,那么我认为它可以回答问题...

答案 13 :(得分:1)

运行下面的命令,在每次推送和拉取之后,它都会要求您输入用户名和密码。

  git config credential.helper ""

enter image description here

现在,当您拉/推时,系统会要求您提供 git 凭据。您通过命令提示符或 Intellij Git 运行的天气。

答案 14 :(得分:1)

如果您刚刚启用了2FA:

按以下步骤修改config隐藏文件夹中的隐藏./git文件:

[remote "origin"]
    url = https://username:PUT_YOUR_2FA_TOKEN_HERE@github.com/project/project.git

答案 15 :(得分:1)

您可能会收到此错误,因为您已经更新了密码。因此,在Terminal上,首先请确保您从钥匙串中清除了GitHub凭据,然后将所做的更改推送到您的存储库中,terminal会要求您输入用户名和密码。

答案 16 :(得分:1)

我做到了:

int n, int l;
if(sscanf(argv[1], "%d%n", &n, &l) == 1 && argv[1][l] == 0)
{
    // successfully scanned an integer and end of string reached -> is a number
}

然后,它要求输入[用户名]和[密码],现在看来工作正常。

答案 17 :(得分:1)

我一直在遇到这个问题。 确保设置了git --config user.name“”而不是您的真实姓名,我已经做了几次。

答案 18 :(得分:0)

在Windows上使用cmd-Greetings出现问题

在使用cmd-Greetings的Windows上存在一个问题,该问题不允许您克隆私有存储库。删除本文档中描述的cmd-greeting(关键字Command Processor):

Known-Issues

我可以确认其他客户端(例如SourceTree,GitKraken,Tower和TortoiseGit)也影响了此问题。

答案 19 :(得分:0)

最好和最简单的方法之一

  1. 刚刚在 github 上禁用了两种身份验证
  2. 转到控制面板--> windows凭据-->点击添加通用凭据

只需手动输入 添加 Github 网址:hhtps://www.github.com 用户名:您的用户名 密码:您的密码 然后保存到它

3)使用 git push 命令时,你需要在 Github 上生成一个 token 再次返回,在 Github > setting> developer setting> generate token

希望这会有所帮助....

答案 20 :(得分:0)

由于您可能想为您的帐户启用2FA,因此可以设置ssh密钥,这样就无需每次想将工作推送到Github时都键入Github凭据。

您可以在documentation中找到所有ssh设置步骤。首先,请确保您当前没有$ ls -al ~/.ssh

包含的任何ssh密钥(id_rsa.pub等)。

答案 21 :(得分:0)

我有同样的问题。我通过在客户端应用的存储库设置中将远程分支的路径从ReactDataGrid更改为https://github.com/YourName/RepoName来解决了这个问题。

答案 22 :(得分:0)

我只是禁用了双重身份验证,然后重试。它对我有用。

答案 23 :(得分:0)

无需依靠生成个人访问令牌,然后尝试使用个人访问令牌代替您的密码。

快速解决方案是将您的远程URL设置为指向ssh而不是https

执行此git remote set-url origin git@github.com:username/repository

答案 24 :(得分:-2)

此解决方案对我有用:

  1. 打开控制面板
  2. 转到凭据管理器
  3. 点击窗口凭据
  4. 在“通用凭据”部分中,将存在git url,更新用户名和密码
  5. 重新启动Git Bash并尝试克隆

答案 25 :(得分:-3)

  1. 控制面板
  2. 凭据管理员
  3. 查找选项Web凭据和Windows凭据
  4. 在任何一个中,您都会发现github凭据使用正确的凭据对其进行了修复
  5. 打开git bash的新实例,您应该能够执行git命令。

这对我有用,我能够将其推入远程仓库。