首页 文章

Git推送导致“身份验证失败”

提问于
浏览
377

我已经使用Github一段时间了,到目前为止我没有问题 git addgit commitgit push . 突然间我有一个错误说:

致命:身份验证失败

在终端我克隆了一个存储库,处理了一个文件然后我用 git add 将文件添加到提交日志中,当我做 git commit 时,它工作正常 . 最后, git push 要求输入用户名和密码 . 我正确地把它们放进去,每次我这样做,它都说同样的错误 .

有谁知道这个问题的原因是什么以及我如何解决它?

.git/config 的内容是:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = http://www.github.com/######/Random-Python-Tests
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
[user]
        name = #####
        email = ############

25 回答

  • 773

    如果您在Github帐户中启用了双因素身份验证,则无法使用您的帐户密码通过HTTPS推送 . 相反,您需要生成个人访问令牌 . 这可以在您的Github帐户的应用程序设置中完成 . 使用此令牌作为密码应该允许您通过HTTPS推送到远程存储库 . 照常使用您的用户名 .

    https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/

    如果设置为https,您可能还需要更新存储库的源:

    git remote -v 
    git remote remove origin 
    git remote add origin git@github.com:user/repo.git
    
  • 51

    Try the following steps to Edit or Remove the saved credentials:

    • 单击“开始”

    • 类型:凭据管理器(在Windows 10上,这是在"Start->Settings"下 . 然后搜索"Credential Manager")

    • 请参阅 Windows Credentials Manager 快捷方式,然后双击它以打开该应用程序 .

    • 应用程序打开后,单击 Windows Credentials 选项卡 .

    • 找到要删除/更新的凭据,它们将以"git:"开头,并且可能以"ada:"开头

    • 点击凭证条目,它将打开条目的详细信息视图 .

    • 根据需要单击编辑或删除并确认 .

    • 洗涤,冲洗,必要时重复 .

    enter image description here

  • 6

    首先,您可以确保使用正确的URL:

    git remote set-url origin https://github.com/zkirkland/Random-Python-Tests.git
    

    然后,如果它之前正在工作,并且它没有要求您使用用户名,那一定是因为您已将您的凭据(登录/密码)存储在 $HOME/.netrc 文件中,如explained here . 您可以仔细检查这些设置,并确保您的代理(如果有的话)没有更改 .

    如果仍然无效,您可以切换到ssh网址:

    git remote set-url origin git@github.com:zkirkland/Random-Python-Tests.git
    

    但这意味着您已在Account settings中发布了ssh公钥 .

  • 1

    这对我有用,它还记得我的证书:

    • 运行gitbash

    • 指向repo目录

    • 运行 git config --global credential.helper wincred

  • 25

    您最近是否为git帐户更改了密码您可以尝试 git push-u 选项

    git push -u origin branch_name_that_you_want_to_push
    

    执行上述命令后,它会要求输入密码提供密码

    希望它可以帮到你

  • 3

    我认为由于某种原因,GitHub期望URL不具有子域名www . 当我使用(例如)

    git remote set-url origin https://www.github.com/name/repo.git
    

    它给出了以下消息:

    remote: Anonymous access to name/repo.git denied
    fatal: Authentication failed for https://www.github.com/name/repo.git
    

    但是,如果我使用

    git remote set-url origin https://github.com/name/repo.git
    

    它工作得很好 . 对我来说没有多大意义......但我猜 remember not to put www in the remote URL for GitHub repositories.

    另请注意,GitHub存储库网页上提供的克隆URL不包含www .

  • 0

    如果您在输入正确的密码和用户名时发现身份验证错误问题,那就是git问题 . 要在计算机中安装git时解决此问题,请取消选中enable git credential manager
    enter image description here

  • 6

    基本上我的凭证已过期,我面临上述问题 .

    以下2命令帮助我:

    git config --global --unset credential.helper
    
    git config credential.helper store
    

    当您尝试推送时,它会在下次询问您的凭据 .

    有关用户名和密码的安全和不安全存储的更多详细信息,请遵循以下准则:

    https://git-scm.com/docs/git-credential-store

    https://git-scm.com/docs/git-credential-cache

  • 8

    在Windows密码过期并更改后,我遇到了“$ git fetch fatal:'http:// ....'身份验证失败 . 使用Windows凭据管理器进行多次提取,重新启动甚至重新安装git都无济于事 .

    令人惊讶的是,正确的答案在这里的评论中,而不是在答案中(其中一些非常奇怪!) . 您需要转到控制面板 - >凭据管理器/ Windows凭据并更新git的密码:http://yourrepoaddress

  • 51

    我有同样的问题 . 我以这种方式设置url:

    git remote set-url origin https://github.com/zkirkland/Random-Python-Tests.git

    我还从配置文件中删除了这个条目: askpass = /bin/echo . 然后"git push"问我用户名和密码,这次它有效 .

  • 0

    我不确定我做了什么来得到这个错误,但做的是:

    git remote set-url origin https://...
    

    不适合我 . 然而:

    git remote set-url origin git@bitbucket.org:user/repo
    

    不知何故工作 .

  • 39
  • 22

    对我来说,我忘记了我在Github.com上更改了密码,我的shell身份验证密钥链从未更新为新密码 . 从我的钥匙串中删除所有git然后重新运行git请求有助于解决问题,再次提示我输入新密码 .

  • 0

    只是为了在这里解决问题,解决了我的问题是我只是取消了初始提示,用我的bitbucket帐户打开了ssh,我输入了密码,一切都按预期工作 .

  • 1

    我在Windows上遇到了同样的问题 . 大多数时候,由于使用多个git帐户,我通常会面临这个问题 . 如果您在Windows上,请以管理员身份打开终端并尝试再次运行命令 . 确保您具有管理员访问权限 .

  • 0

    嗨我得到了同样的错误我尝试了本页提到的所有解决方案,但没有奏效 . 最后,我找到了解决方案,所以想到发布它 . 如果我错了,请纠正我 . 如果有时您的系统密码最近随时更改,则会出现这类错误 . 它将尝试从旧密码验证 . 请按照下列步骤操作: Go to control panel -> Click on User accounts -> Under Credentials manager -> Go to Manage windows credentials -> Go to Generic credentials -> Expand git server tab - > click on Remove from vault

  • 0

    我也遇到了错误(这就是我降落在这里的原因),但没有一个建议对我有用 . 这是我第一次尝试将本地Git部署到azure . 当我收到此错误时,我会在几次尝试后重置我的凭据(通过单击Azure中的链接) . 问题是,此时它告诉我我的用户名已经被占用,所以我也将我的用户名改为另一个 . 最后,我手动删除了本地驱动器上的.git文件夹,并重新部署它没有问题 .

  • 0

    Problem Statement: "git fatal authentication failed" . 我正在使用bitbucket .

    Solution: 我只是删除了用户使用bitbucket的访问管理,然后添加了相同的用户 . .gitconfig文件很简单

    [user]
        name = BlaBla
        email = blabla@gmail.com
    
    [push]
        default = simple
    
  • 1

    如果问题占优势,请使用正确的凭据

    如果你使用androidstudio 2.1 beta然后它的bug,升级到beta 2(3 mb更新文件),这对我有用

  • 1

    确保你有WRITE权限推送 .

    read ***write*** admin
    
  • 0

    确保将ssh密钥添加到当前的ssh会话中 .

    • cat ~/.ssh/id_rsa.pub 的输出复制到SSH和GPG密钥下的GitHub设置 .

    • 使用 ssh-add ~/.ssh/id_rsa.pub 更新当前的ssh会话

    我正在使用安装了Openssh的Windows Powershell .

  • 144

    如果您已在Github帐户上启用双因素身份验证,请登录到您的GitHub帐户并转至:https://github.com/settings/tokens/new以生成新的访问令牌,复制该令牌并粘贴为终端中的身份验证密码 .

  • 17

    在Android studio canary build 3.1中,如果您使用的是Android studio git工具,那么您可以使用以下内容:

    • 点击Android Studio

    • 点击首选项...

    • GO在VersionControl中 - > Github

    • 此处将身份验证类型更改为密码

    • 此步骤将要求您输入登录名和密码 . 输入github用户名s登录名和github密码作为密码 .

    • 单击“测试”按钮 .

    如果连接成功,那么你可以使用android studio github UI客户端 .

  • 0

    如果您在Windows上并尝试推送到具有域用户作为存储库用户(TFS)的Windows服务器,请尝试使用IE进入TFS URL(即 http:\\tfs ) . 输入您的域帐户凭据并显示该页面 .

    CAUTION 只能使用INTERNET EXPLORER!其他浏览器不会更改您的系统凭据 .

    现在转到git bash并更改存储库的远程用户,如下所示:

    git config user.name "domainName\userName"
    

    完成了,现在你可以推!

  • 0

    如果您使用ssh并使用https克隆,则无法使用 . 用ssh克隆然后推拉应该按预期工作!

相关问题