【问题标题】:'git push heroku master' is still asking for authentication'git push heroku master' 仍在要求身份验证
【发布时间】:2015-03-04 19:32:25
【问题描述】:

我已经执行了:

$ 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 配置看起来如何?是否添加了主机条目?
  • 我已经在配置文件中解决了这个问题,在这里回答:stackoverflow.com/questions/16721428/… :/
  • 也许我的评论只能帮助少数人,但我发现如果您的帐户名称(Windows 帐户)由非 ASCII 组成,也会出现此错误。我希望这个评论可以帮助别人!

标签: git authentication heroku heroku-toolbelt


【解决方案1】:

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

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

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

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

【讨论】:

  • 和空白 - 您实际上是指用户名中的“空白”。
  • 好吧,当我尝试“无”时,它说输入无效。当我输入“空白”时,它起作用了。这是在 Windows 系统上。
  • 为我工作!您也可以在dashboard.heroku.com/account -> API Key 中获取 auth key
  • 虽然这对我来说完全没有意义,但它确实有效。魔术。
  • 像魔术一样工作。我做了heroku登录并登录,然后签出。当再次询问用户名和密码时,从网站获得了密码。它现在称为 API 密钥
【解决方案2】:

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

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

【讨论】:

  • 你从哪里得到%USERPROFILE%?我还尝试将%HOME% 设置为绝对路径,但我得到的只是未跟踪的_netrc 文件。对我不起作用。
  • 我正在设置 HOME=c:\users\razor,它是 _netrc 文件 c:\users\razor\_netrc Heroku 创建的位置
【解决方案3】:

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

【讨论】:

  • 不错!谢谢!
  • 像魅力一样工作。
【解决方案4】:

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

【讨论】:

    【解决方案5】:

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

    这对我有用

    【讨论】:

    【解决方案6】:

    我也有同样的问题。就我而言,我不小心使用了窗口控制台而不是 Git bash

    【讨论】:

    • 去显示一个警告背后可能有很多原因。
    • 我不明白这会如何导致问题,实际上我认为我使用了 windows cmd...
    • ffs,你应该使用 Git bash 吗?
    • 我在使用 Git bash 后遇到另一个错误。也许我会坚持cmd
    • 你应该可以使用任何一个。或两者。这仅取决于您是否使用正确的 heroku 凭据设置了上下文。
    【解决方案7】:

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

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

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

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

    【讨论】:

    • 在我的情况下,我通过 Windows cmd 提示符进行了登录,并希望在 Cygwin 中使用凭据。在我的主文件夹中重命名文件 .netrc 使 git 识别它
    【解决方案8】:

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

    首先,正如评论中提到的@Raziza O,获取heroku API key

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

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

    【讨论】:

      【解决方案9】:

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

      【讨论】:

        【解决方案10】:

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

        SSH Fingerprint not authorized on Heroku after git restore

        【讨论】:

          【解决方案11】:

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

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

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

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

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

          【讨论】:

            【解决方案12】:

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

            【讨论】:

              【解决方案13】:

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

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

              【讨论】:

              • 这个解决方案 (heroku login) 对我有用,但可能出于不同的原因。
              【解决方案14】:

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

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

              我的问题是 "Windows Credentials"(操作系统:Windows 10)有另一个以前与 Heroku(公司帐户)关联的凭据,并使用它而不是新的凭据(我的个人帐户)。

              我必须转到:“控制面板\所有控制面板项\凭据管理器”(从控制面板),并修改所有凭据:https://git.heroku.com(以及所有与“ heroku" word) 与当前帐户。

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

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

              我的 2 美分。

              【讨论】:

                【解决方案15】:

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

                【讨论】:

                  【解决方案16】:

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

                  【讨论】:

                    【解决方案17】:

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

                    【讨论】:

                      【解决方案18】:

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

                      希望对你有帮助。

                      【讨论】:

                        【解决方案19】:

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

                        git fetch
                        

                        解决了我的问题。

                        【讨论】:

                          猜你喜欢
                          • 2011-05-23
                          • 2013-01-27
                          • 2014-08-24
                          • 2012-03-13
                          • 1970-01-01
                          • 2013-09-05
                          • 2013-03-21
                          • 2013-02-03
                          • 2016-12-26
                          相关资源
                          最近更新 更多