我在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上给出的指令和许多堆栈讨论的建议,但没办法。你知道我做错了什么吗?
答案 0 :(得分:687)
启用双因素身份验证(2FA)后,您在尝试使用git clone
,git fetch
,git pull
或git 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/'
启用2FA后,您需要输入个人访问令牌,而不是2FA代码和GitHub密码。
...
例如,当您使用命令行上的Git使用带有HTTPS URL的
git clone
,git fetch
,git pull
或git push
等命令访问存储库时,您必须提供提示输入用户名和密码时,您的GitHub用户名和个人访问令牌。命令行提示符不会指定您在要求输入密码时应输入个人访问令牌。
答案 1 :(得分:185)
https://git@github.com/eurydyce/MDANSE.git不是ssh网址,而是https网址(需要您的GitHub帐户名称,而不是“git
”)。
尝试使用ssh://git@github.com:eurydyce/MDANSE.git
或git@github.com:eurydyce/MDANSE.git
git remote set-url origin git@github.com:eurydyce/MDANSE.git
这就是我在
~/.gitconfig
文件中所做的,其中包含当前以下条目[remote "origin"] url=git@github.com:eurydyce/MDANSE.git
这不应该在您的全局配置中(~/
中的那个)
您可以在回购中检查git config -l
:该网址应在 local 配置中声明:<yourrepo>/.git/config
。
因此,在执行git remote set-url
命令时,请确保您处于repo路径中。
答案 2 :(得分:33)
解决步骤:
答案 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)
在这种情况下,如果出现此错误消息:
然后看这个答案: 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
我解决了。在这里,您需要为您的用户名创建密码
答案 12 :(得分:1)
在github上禁用2因子身份验证对我有用。
我看到有一个删除的答案说这句话,删除原因是“不回答问题”。如果有效,那么我认为它可以回答问题...
答案 13 :(得分:1)
git config credential.helper ""
现在,当您拉/推时,系统会要求您提供 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)
在使用cmd-Greetings的Windows上存在一个问题,该问题不允许您克隆私有存储库。删除本文档中描述的cmd-greeting(关键字Command Processor
):
我可以确认其他客户端(例如SourceTree,GitKraken,Tower和TortoiseGit)也影响了此问题。
答案 19 :(得分:0)
最好和最简单的方法之一
只需手动输入 添加 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
答案 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)
此解决方案对我有用:
答案 25 :(得分:-3)
这对我有用,我能够将其推入远程仓库。