Heroku CLI登录时的IP地址不匹配。

69

以前我可以使用heroku login登录heroku命令行界面。但现在,我遇到了IP地址不匹配错误。我该如何解决?

21个回答

190

在您的终端中复制并粘贴heroku login -i。这就是我解决问题的方法。


6
当您的账户附有“授权令牌”时,情况就不再是这样了! - Wale
3
错误:您的帐户已启用MFA;不支持使用电子邮件和密码进行基本身份验证的API请求。请生成授权令牌以访问API。 - Dendi Handian
3
这对我有效,但是你应该使用账户上可用的生成令牌,而不是设置你通常的密码。 - EFOE
这在 macOS 12 及更高版本中无法工作。您需要暂时关闭私人中继。 - Thomas Horrobin
有趣的是...我运行了这个程序(但因为我启用了MFA而失败了),但之后heroku login却成功了(在通过浏览器登录后,我一直收到“IP地址不匹配”的提示)。 - Dan Brown

46

为解决这个问题,只需添加一些详细的步骤:

  1. 进入 https://dashboard.heroku.com/account/applications
  2. 在“授权(Authorizations)”中单击“创建授权(create authorization)”按钮
  3. 在弹出的窗口中添加说明,例如:Heroku CLI,并留空“过期后”字段,如果您不想设置到期时间
  4. 您将获得授权令牌
  5. 在命令行界面(CLI)中运行 heroku login -i
  6. 当提示输入密码时,请输入授权令牌

这是对我有效的方法 - undefined

13

接受的答案(运行heroku login -i)不适用于启用了MFA的帐户。我所做的是揭示我的帐户API密钥并将其放入~/.netrc中,如下所示:

machine api.heroku.com
  login <MY_EMAIL>
  password <API_KEY>
machine git.heroku.com
  login <MY_EMAIL>
  password <API_KEY>

看,神奇!我现在可以使用CLI了。这对我在Google CloudShell中有效。

P.S. -- 我添加了我的机器SSH密钥,但是无法理解如何使用它来配置CLI的访问。它好像是硬编码为在~/.netrc中查找API密钥。


9

1
适用于我的 - 尽管很烦人 - alex
我尝试了这里提出的很多解决方案。这是第一个对我有用的。谢谢! - Kevin Kreps

7

对于启用了多因素认证的帐户。

运行 heroku login 命令,按任意键打开浏览器窗口。复制 URL 并在无痕模式下打开它。


这个解决了我的问题。这应该是被接受的答案。 - Hasanta

5
如果您使用运行macOS 12 Monterey的Mac电脑并启用了Private Relay功能,则需要在完成Heroku CLI身份验证工作流程时将其关闭,因为该功能通过代理您的流量通过IP地址池来混淆您的实际IP地址。

1
谢谢。这解释了为什么它似乎突然出现,但自我启用私人中继以来已经过去了一周或更长时间。但是 heroku login -i 可以正常工作。 - Greg

4

如果您的计算机在代理后面,那么当您暂时禁用代理时,身份验证就会完成,否则将出现此错误。


1
这是唯一帮助了我的答案。谢谢! - Horatio
1
这个有效。我有一个本地DNS服务器在运行,我停了几秒钟,然后就能登录了。 - rocktimsaikia

3

对我来说,heroku login -i 起作用了。没有必要使用令牌。在执行 heroku login -i 后,它需要我的凭据,即电子邮件和密码,然后我就被登录了。


目前你的回答不够清晰,请编辑并添加更多细节,以帮助其他人理解它如何回答问题。你可以在帮助中心找到有关如何编写好答案的更多信息。 - Community

3
如果您正在使用多因素身份验证,您需要创建一个API密钥。操作步骤如下:
  1. 访问以下链接:https://dashboard.heroku.com/account(如果需要登录,请登录)。

  2. 点击此处: enter image description here

  3. 打开位于~/.netrc的隐藏文件,并将您的API密钥粘贴到两个“密码”字段中。 例如,如果您的API密钥是'a8g73nga-9vb2-0184-afbc-54fac2b66c75',则应如下所示:

machine api.heroku.com
  login your.email@example.com
  password a8g73nga-9vb2-0184-afbc-54fac2b66c75
machine git.heroku.com
  login your.email@example.com
  password a8g73nga-9vb2-0184-afbc-54fac2b66c75
  1. 现在可以使用Heroku CLI了!

参考资料

  • Heroku CLI身份验证文档

2

Heroku在登录时添加了新的更改。您可以在这里找到更改日志。

如果您在防火墙后面,可能需要设置代理。

set HTTP_PROXY=http://proxy.server.com:portnumber


端口号(portnumber)指的是什么?应该设置为什么?proxyserver是否也应该被视为某些其他值的占位符,还是应该字面解释? - Jonathan Bechtel
可能由于这个问题,我发现一个解决方法是打开VPN,重新登录,然后一切都正常了。 - user14140381

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接