'git push heroku master' 仍在要求身份验证

'git push heroku master' is still asking for authentication

我执行了:

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

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

我在 Windows 8,Git 1.9.5。

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

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

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

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

请原谅我回复晚了,我已经在两个月前解决了我的问题。 (只是还没有将问题标记为已回答。/菜鸟)

SSH Fingerprint not authorized on Heroku after git restore

我有完全相同的问题。就我而言,原因是我不小心使用了 window 控制台而不是 Git bash

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

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

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

您可以尝试将 _netrc 文件添加到其中一个以找到匹配的文件。让我知道哪个有 _netrc 文件,你可以把它放在哪里,让 git 通过不要求你提供 username/password.

来获取它

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

我遇到了同样的问题(git 无法验证)。 碰巧 GIT 想从 %HOME%/_netrc 文件读取授权数据,而在 Windows 你没有这个变量(只有 %USERPROFILE% 和 %HOMEDRIVE% + %HOMEPATH%)

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

我所做的是打开 git bash 而不是命令提示符并键入 "git push heroku master"。 它起作用了:D

Renaming the _netrc file to .netrc on Windows 7 in the userdir worked for me.

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

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

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

来自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/

首先找到由 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 命令后要求身份验证时使用该登录名和密码

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

来解决此问题

如果有人试图在 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/

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

在该终端中使用 heroku login 和 运行 命令再次登录 ,或者在第二个 window 中使用 运行 命令(如果你还开着的话)。

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

这对我有用

这个话题很老了,我知道。

但是,none 之前的解决方案对我有用。

我的问题是 "Windows Credentials" (os: Windows 10) 之前有另一个与 Heroku(公司帐户)关联的凭证,并且使用这个而不是新的(我的个人帐户)。

我不得不去:"Control Panel\All Control Panel Items\Credential Manager"(从控制面板),并修改所有凭据:https://git.heroku.com(以及所有 ose 与 "heroku" 词相关联)与帐户当前。

但是,密码我放置了显示在站点 "Dashboard" 中的密钥 API 并且命令有效: git 推送 heroku 大师。

生活不会还给我的 7 个小时。 :/

我的 2 美分。

如果有人还在为此苦苦挣扎,这个答案对我帮助很大

首先,如评论中@Raziza O所述,获取heroku API key

https://dashboard.heroku.com/account. Roll down the screen and hit the reveal button.

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

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

希望对你有所帮助

简单写:$heroku login
它会带你到网络登录。在那里输入您的凭据,您也将通过 CLI 登录。

要生成长期 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

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

git fetch

解决了我的问题。

对我来说,它发生在两种情况下:第一次使用时或长时间不使用时git它会自动注销。

在这两种情况下,您只需要 运行 heroku login 它将打开浏览器,以便您可以开始新的会话。