"git push heroku master" 仍然要求进行身份验证。

90

我已执行:

$ heroku login

但是当我尝试推送时,仍然要求进行身份验证:

$ git push heroku master
Username for 'https://git.heroku.com': <email>
Password for 'https://<email>@git.heroku.com':

然后我收到一个警告:不要使用用户名和密码在Git上进行身份验证。

我再次运行 heroku login 并成功进行了身份验证,但我仍然遇到相同的问题。

我已经检查了远程:

$ git remote -v
heroku https://git@heroku.com/appname.git (fetch)
heroku https://git@heroku.com/appname.git (push)

我还生成了一个新的公钥,将其传递给Heroku并对其进行了验证:https://devcenter.heroku.com/articles/keys

我使用的是Git 1.9.5版本,操作系统为Windows 8。


你的ssh配置是什么样子的?你是否已经添加了主机条目? - drRobertz
1
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Rea G
也许我的评论只能帮助少数人,但我发现如果您的账户名称(Windows 账户)包含非 ASCII 字符,也会出现这个错误。希望这条评论能帮到某些人! - James
获取Heroku命令行工具,运行heroku login - undefined
21个回答

2

只需要输入以下命令:$heroku login
它会带你到网页登录页面。在那里输入您的凭证,然后您将能够通过CLI登录。


1

1

我知道这个话题很老了。

然而,之前的解决方案都对我没有用。

我的问题是,“Windows 凭据”(操作系统:Windows 10)之前与 Heroku(公司帐户)关联的凭据与新的凭据(我的个人帐户)冲突了。

我必须去“控制面板\所有控制面板项目\凭据管理器”(从控制面板中),并使用当前账户修改所有凭证:https://git.heroku.com(以及所有与“heroku”一词相关联的凭证)。

然而,“仪表板”中显示的 Key API 所放置的密码和命令 git push heroku master 是有效的。

7小时的生命不会再回来了。 :/

我的建议。


1
发生这种情况是因为git和heroku没有使用相同的_netrc文件。这是我正在尝试解决的问题,但您可以通过找到_netrc文件应该在哪里以及CLI将其放置在哪里来帮助我。
以下内容将输出可能是_netrc文件的来源:
> echo %HOME%
> echo %HOMEDRIVE%%HOMEPATH%
> echo %USERPROFILE%

你可以尝试将_netrc文件添加到其中一个中以找到匹配项。告诉我哪个拥有_netrc文件,以及您能够将其放置在哪里并使git通过不询问用户名/密码来获取它。
另外,请检查您的.gitconfig,看看是否有任何可能导致问题的git凭据助手。

1

1
你可能已经在两个终端登录了 heroku,如果你在第一个终端尝试运行命令,它会报错,因为第二个终端进行了新的身份验证。
要么用 heroku login 再次登录并在该终端中运行命令,要么在第二个窗口中运行命令(如果您仍然保持打开状态)。

这个解决方案(heroku login)对我有用,尽管可能是出于不同的原因。 - prototype

0
我所做的是打开Git Bash而不是命令提示符,并输入“git push heroku master”。 它奏效了 :D

0

我通过将http地址更改为ssh://git@heroku/...来解决了这个问题。


0

我在Windows上遇到了同样的问题,只需使用_on_netrc文件中可用的PSW即可解决,该文件可以在C:\ Users \用户名_netrc中找到。

希望能有所帮助。


0

可以使用Heroku API密钥(帐户设置-> API密钥)登录,如@andy mccullough所提到的,但是每次都需要登录。

git fetch

我解决了这个问题。


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