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

时间:2015-01-07 02:11:40

标签: git authentication heroku heroku-toolbelt

我执行了:

$ 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。

19 个答案:

答案 0 :(得分:171)

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

用户名:空白

密码: heroku身份验证令牌

可以通过$ heroku auth:token

检索身份验证令牌

答案 1 :(得分:28)

我遇到了同样的问题(git无法进行身份验证)。 GIT想要从%HOME%/ _ netrc文件读取auth数据,而在Windows上你没有这个变量(只有%USERPROFILE%和%HOMEDRIVE%+%HOMEPATH%)

我将HOME设置为%USERPROFILE%(heroku保存_netrc文件的地方)并且GIT开始工作

答案 2 :(得分:16)

首先找到由heroku创建的_netrc文件。在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命令

之后请求身份验证时使用该登录名和密码

答案 3 :(得分:11)

来自Heroku documentation

输入以下命令:

# 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/

答案 4 :(得分:6)

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

答案 5 :(得分:6)

用户名:您用于注册Heroku的电子邮件 密码:Heroku为您提供的API密钥,在Heroku网站的“帐户设置”中

这对我有用

答案 6 :(得分:4)

  

在用户目录的Windows 7上将_netrc文件重命名为.netrc为我工作。

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

在用户目录或整个组合中的cmd中运行第3个命令:

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

答案 7 :(得分:1)

这是因为git和heroku没有使用相同的_netrc文件。这是我尝试解决的问题,但您可以通过查找_netrc文件的位置以及CLI放置的位置来帮助我。

以下内容将输出_netrc文件所在的潜在来源:

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

您可以尝试将_netrc文件添加到其中一个文件中以找到匹配的文件。让我知道哪个有_netrc文件,你可以把它放在哪里,让git通过不要求你输入用户名/密码来获取它。

同时检查您的.gitconfig,看看是否有任何git凭据助手,这可能会导致问题。

答案 8 :(得分:1)

这个主题很旧,我知道。

但是,以前的解决方案都不适合我。

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

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

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

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

我的2美分。

答案 9 :(得分:1)

如果有人仍在为此苦苦挣扎,那么这个答案对我有很大帮助Use Heroku API key

首先,如评论中的@Raziza O所示,获取heroku API密钥

  

https://dashboard.heroku.com/account。向下滚动屏幕并点击显示按钮。

然后,运行 git push https://heroku:$HEROKU_API_KEY@git.heroku.com/$HEROKU_APP_NAME.git HEAD:master

答案 10 :(得分:0)

我通过将http地址更改为ssh://git@heroku/...

来解决此问题

答案 11 :(得分:0)

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

git fetch

已解决我所遇到的问题。

答案 12 :(得分:0)

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

noLoop()

样本输出:

heroku authorizations:create

然后将以下信息用于git:

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)

答案 13 :(得分:0)

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

答案 14 :(得分:0)

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

我希望它能提供帮助。

答案 15 :(得分:0)

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

使用heroku login再次登录 并在该终端中运行命令,或在第二个窗口中运行命令(如果您仍然打开它)。

答案 16 :(得分:0)

如果有其他人试图在cygwin上解决这个问题: http://www.railszilla.com/git-push-heroku-master-authentication/start 重写为SSH传输对我来说是个窍门:

git config --global url.ssh://git@heroku.com/.insteadOf https://git.heroku.com/

答案 17 :(得分:0)

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

答案 18 :(得分:0)

请原谅迟到的回复,但两个月前我已经解决了我的问题。 (只是避免将这个问题标记为已回答./ noob)

SSH Fingerprint not authorized on Heroku after git restore