'git push heroku master'仍在要求认证


79

我已经执行:

$ heroku login

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

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

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

我再次运行heroku登录并成功通过了身份验证,但仍然遇到相同的失败。

我检查了遥控器:

$ 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

我在Windows 8上使用Git 1.9.5。


您的ssh配置看起来如何?您是否添加了主机条目?
罗伯茨博士

1
我已经解决了配置文件中的问题,如下所示:stackoverflow.com/questions/16721428/…:/
Rea G 2015年

也许我的评论只能对几个人有所帮助,但是我发现,如果您的帐户名(Windows帐户)由非ASCII组成,也会发生此错误。我希望此评论可以对某人有所帮助!
詹姆斯

Answers:


186

我通过以下登录解决了这个问题:

用户名:用于注册到heroku的电子邮件(也可以将此字段留空

密码:heroku身份验证令牌API密钥

可以通过$ heroku auth:token或通过Heroku中的“帐户设置”检索身份验证令牌的位置


7
并用空格-您实际上是在用户名中表示“空白”。
乔迪·菲茨帕特里克

14
好吧,当我尝试“什么都不做”时,它说输入无效。当我输入“空白”时,它起作用了。这是在Windows系统上。
乔迪·菲茨帕特里克

@NunoFurtado,但是我在这里回答了我的答案的问题:stackoverflow.com/questions/16721428/...
雷阿摹

4
为我工作!您还可以在dashboard.heroku.com/account中获取身份验证密钥-> API密钥
dmikam,2016年

8
尽管这对我来说绝对没有意义,但实际上确实有效。魔法。
栖息地

28

我有同样的问题(git无法验证)。碰巧GIT希望从%HOME%/ _ netrc文件中读取身份验证数据,并且在Windows上您没有此变量(只有%USERPROFILE%和%HOMEDRIVE%+%HOMEPATH%)

我将HOME设置为%USERPROFILE%(heroku保存_netrc文件的位置),GIT开始工作


你去%USERPROFILE%哪儿?我也尝试设置%HOME%为绝对路径,但是我得到的只是未跟踪的_netrc文件。对我不起作用。
mr5

我正在设置HOME=c:\users\razor,它是c:\users\razor\_netrcHeroku创建的_netrc文件的一个位置
razor

18

首先找到_netrc由heroku创建的文件。在Windows中可以找到C:\Users\User Name\_netrc

该文件包含用于 git.heroku.com

machine git.heroku.com
     login abcd123@gmail.com
     password xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

$ git push heroku master命令后要求进行身份验证时使用该登录名和密码


真好!谢谢!
Nikita

奇迹般有效。
skidadon

14

Heroku文档中

输入以下命令:

# Enable SSH authentication
$ heroku create --ssh-git

# Redirect tall HTTPS calls to SSH
$ git config --global url.ssh://git@heroku.com/.insteadOf https://git.heroku.com/


8

我有完全一样的问题。在我的情况下,我不小心使用了窗口控制台而不是Git bash


展示了一个警告背后可能有很多原因的原因。
Rea G

我看不到这怎么可能导致问题,实际上我想我用的是Windows cmd ...
andy mccullough

ffs,您应该使用Git bash吗?
Radu

使用Git bash后出现另一个错误。也许我会坚持cmd
6

您应该都可以使用。或两者。这仅取决于您是否使用适当的heroku凭据设置了上下文。
dvlsg

5

在userdir中将_netrc文件重命名到.netrcWindows 7上对我有用。

..尝试了许多其他教程中的所有步骤之后。

在您的userdir或整个组合中的cmd中运行第三个命令:

setx HOME %USERPROFILE%
cd %HOME%
REN _netrc .netrc

以我为例,我通过Windows cmd提示符进行登录,并希望使用Cygwin中的凭据。重命名文件.netrc在我的主文件夹由混帐承认它
索纳塔



1

发生这种情况是因为git和heroku没有使用同一_netrc文件。这是我要解决的问题,但是您可以通过找到您的位置来帮助我_netrc文件应在何处以及CLI将该文件放在何处来为。

以下将输出_netrc文件可能存在的潜在来源:

> echo %HOME%
> echo %HOMEDRIVE%%HOMEPATH%
> echo %USERPROFILE%

您可以尝试将_netrc文件添加到其中之一,以找到匹配的文件。让我知道哪个有_netrc文件,以及您可以在哪里放置文件并让git通过不询问用户名/密码来获取它。

另外,请检查您的.gitconfiggit凭证帮助程序,以免引起问题。



1

我知道这个话题很旧。

但是,以前的解决方案都没有对我有用。

我的问题是“ Windows凭据”(操作系统:Windows 10)具有先前与Heroku(公司帐户)关联的另一份凭据,并使用了该凭据而不是新的凭据(我的个人帐户)。

我必须转到:“控制面板\所有控制面板项目\凭据管理器”(来自控制面板),然后修改所有凭据:https : //git.heroku.com(以及所有与“ heroku”字词相关联)当前帐户。

但是,我放置了显示在站点“仪表板”的Key API的密码,并且该命令有效:git push heroku master。

7个小时的生命不会让我回来。:/

我的2美分。


0

我所做的是打开git bash而不是命令提示符,然后键入“ git push heroku master”。它工作:D



0

您可能已经登录heroku了两个终端,并且如果您尝试在第一个终端上运行命令,它将在第二个终端中进行新的身份验证时报告此类错误。

无论是登录再次heroku login在该终端,或在第二个窗口中运行命令(如果有的话仍然打开)中运行命令。


0

我在Windows上遇到了同样的问题,只是使用_netrc文件上的PSW对其进行了排序,可以在C:\ Users \ User Name_netrc中找到该文件。

希望对您有所帮助。


0

只需写:$heroku login
将带您进入Web登录。在此处输入您的凭据,您也将通过CLI登录。


0

要生成长期的heroku令牌,请使用:

heroku authorizations:create

样本输出:

Creating OAuth Authorization... done
Client:      <none>
ID:          XXXXXXXX-XXXX-4c9c-85f2-554f0f0c14fa
Description: Long-lived user authorization
Scope:       global
Token:       XXXXXXXX-XXXX-4ad5-ac64-44bbc01c2d95
Updated at:  Wed Mar 04 2020 12:00:00 GMT+0000 (Greenwich Mean Time) (less than a minute ago)

然后将以下信息用于git:

username: blank (type the word blank)
pass: XXXXXXXX-XXXX-4ad5-ac64-44bbc01c2d95

0

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

git fetch

解决了我的问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.