基于 https 的 GitHub 身份验证失败,返回错误的电子邮件地址

使用 GitHub 从命令行(通过 https,而不是 ssh)启动一个 push 或任何其他操作,调用用户名和密码不仅会失败,而且当它调用用户名和密码时,它会返回

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

我没有 @github.com地址。密码和用户名是正确的。

我知道我可以切换到 SSH 并使用密钥,但这并不能回答为什么身份验证在 https 上失败。

174878 次浏览

我没有 @github.com的地址

您不必这样做: @是用户名: 密码和域之间的分隔符。
这不是电子邮件地址。

一个完整的 GitHub https URL 应该是:

# 2014:
https://username:password@github.com/username/reponame.git


# 2021+:
https://username:token@github.com/username/reponame.git

如果没有令牌(然后在命令行中询问) ,那么会得到:

https://username@github.com/username/reponame.git

但是,username@github.com不是电子邮件地址,只是凭证的第一部分。

确保你的 usernamereponame的情况是正确的: 这是区分大小写的


自2021年8月以来,GitHub 在 GitHub.com 上验证 Git 操作时不再接受帐户密码。
只有个人访问令牌(Personal Access Token)


请注意,您可以在以下位置存储和加密您的凭据:

GitHub 的支持立即决定了问题的根源: 双因素授权。

通过 https、 创建一个 OAuth 令牌在 shell 上使用 GitHub。正如页面所说明的,我确实不得不从 Keychain 中删除我的用户名和密码凭据,但是在适当的 osx-keychain中,令牌被存储为密码,并且在没有适当的双因素授权的情况下,它们在 https 上的工作方式完全一样。

[麦克专用]

如果需要删除身份验证,请使用

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

在麦克身上。

参见 https://help.github.com/articles/updating-credentials-from-the-osx-keychain/

如果以前存储了不同的凭据,则在 Windows 中可能会发生这种情况。转到凭据管理器并删除存储的 github 凭据

为了防止这对其他人也有帮助,我被签入了 mac 应用程序,命令行运行良好,但是因为我打开了2FA,我的命令返回了错误。我必须登出应用程序,然后我可以使用我的个人访问令牌在我的命令作为每一个 e 的答案 给你

希望这能帮到别人!

在 Windows 上,你可能会被你的杀毒软件或 Windows 防火墙悄悄地屏蔽掉。暂时关闭这些服务并从远程推/拉。

同样的事情发生在我身上,当我为 github 启用了双向身份验证:

  • 得到你的个人访问令牌。这你必须检查和生成,如果没有已经可用。链接为此: https://github.com/settings/tokens
  • 转到本地并删除文件夹,然后从 github 重新克隆分支。
  • 现在尝试您之前尝试的命令,即: git pull source master
  • 输入用户名和密码粘贴生成的 Token,并且不要忘记将该令牌保存在某个地方,这样您就可以在需要时重复使用。

这样做可以解决你的问题。

  • 转到 Credential Manager = > Windows Manager
  • 删除与 tfs 相关的所有内容
  • 现在单击 添加一个通用凭据并提供以下值

    (1) Internet 或网络地址: git: https://tfs.donamain名称 (2)用户名: 你的用户名 (3)密码: 你的密码

    这个应该能修好

  • 转到 https://github.com/settings/tokens生成令牌
  • 生成令牌并安全地存储它
  • 现在尝试将代码推送到 github
  • 两次你必须给你的凭证。第一次提供您的 Gmail 和密码和第二次提供您的 用户名和生成的令牌而不是密码(在密码字段)。
  • 另一件事是,如果你去你的 github 配置文件,然后你会发现你的用户名在网址

我觉得挺好的,希望能节省你的时间,祝你好运。

  • 用来装苹果和窗户 转到 < a href = “ https://Github.com/sets/tokens”rel = “ nofollow norefrer”> Github 令牌生成器

    • 生成标记并复制它
  • 然后在终端导航到文件夹并执行 git push

  • 它会要求用户名和密码,把个人访问令牌的密码

注意-如果推不发生使用 git push --force