我执行了:
$ 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。
答案 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)
输入以下命令:
# 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)