更改密码后 Heroku CLI 中的身份验证失败

Posted

技术标签:

【中文标题】更改密码后 Heroku CLI 中的身份验证失败【英文标题】:Authentication failure in Heroku CLI after password change 【发布时间】:2014-05-22 08:48:14 【问题描述】:

在heroku的网站上更改密码后,我无法访问heroku api。

当我执行heroku login 时,我得到身份验证成功,尽管它不应该是因为密码已更改。它甚至不要求我的电子邮件或密码,就像它应该的那样!

如果我尝试heroku apps(或任何其他与应用程序相关的命令),我会得到身份验证失败

如果我尝试heroku status,它会起作用。

我没有安装任何插件。

日志:

$ heroku version
heroku-gem/3.6.0 (i686-linux) ruby/2.1.0
$ heroku logout
Local credentials cleared.
$ heroku login
Authentication successful.
$ heroku apps
Authentication failure
$ heroku plugins
You have no installed plugins.

如果我能得到任何帮助或想法,我将不胜感激。我已经开票并等待 Heroku 支持人员回复我。

谢谢

【问题讨论】:

【参考方案1】:

尝试删除 ~/.netrc(这是 Heroku CLI 工具保存身份验证令牌的位置)并重新开始。

【讨论】:

不,还没有~/.netrc 文件。 这很奇怪。 heroku login 使用正确的用户/密码成功了吗? 它甚至没有要求电子邮件/通行证,只是写了Authentication successful。问题已经解决了,我定义了一个环境变量HEROKU_API_KEY,修改密码后Heroku会自动重新生成。【参考方案2】:

显然,更改 heroku 的密码会重新生成一个新的 API 密钥,而我配置了错误的 HEROKU_API_KEY。 (更改密码后会重新生成一个新的)。

我在这里发布了 Heroku 支持团队的回复,他们给了我以下建议:

您的计算机上有~/.netrc 文件吗?如果有,您能否检查该文件是否包含与 Heroku 相关的内容?如果有请删除,然后重新登录。 您的机器上是否定义了HEROKU_API_KEY 环境变量?如果是,您可以删除它并重新登录吗? 您的机器上是否有~/.heroku/credentials 文件(带或不带扩展名)?如果是,您能否将其删除并重新登录? 最后,如果这些都不起作用,可以尝试以下命令:GEM_HOME='' BUNDLE_GEMFILE='' GEM_PATH='' RUBYOPT='' heroku login 看看效果如何?

【讨论】:

++!在阅读了很多关于heroku accounts (不再存在,并且替换要求创建catch-22的凭据)并尝试其他没有帮助的事情之后,GEM命令行做了诀窍。 为什么它创造了这些我无法理解。 它到底为什么需要这些,我无法理解。第一次登录?文件显然不存在或未配置到帐户。登录没有问题。之后改密码?现在服务器不同意您的身份验证文件,因此输入旧密码或新密码不起作用。结果,我的帐户不再安全。这些文件甚至没有节省我的时间,因为我仍然需要输入密码。【参考方案3】:

在heroku的网站上更改密码后,我无法访问heroku api。

您在使用heroku-accounts 插件吗?如果是这样,请尝试卸载它。

heroku plugins:uninstall heroku-accounts
rm -r ~/.heroku/accounts
heroku logout
heroku login
https://github.com/ddollar/heroku-accounts/issues/56

【讨论】:

您可能不必... ***.com/questions/22957664/…【参考方案4】:

你在使用 heroku-accounts 插件吗?如果是这样,请尝试卸载它。

您可能不需要卸载它...

确保您不在项目目录中(否则您可能会遇到“找不到帐户”循环)。

cd

列出您的帐户。

heroku accounts

在更改密码的每个帐户上

heroku accounts:remove ACCOUNT
heroku accounts:add ACCOUNT

(我不需要对~/.ssh/config 做任何事情。)

如果需要,请重置您的默认帐户。

heroku accounts:default ACCOUNT

如果您更改了帐户名或git config --unset heroku.account

cd /path/to/your/project
git config --add heroku.account ACCOUNT

我不想放弃 heroku-accounts 插件。 :)

【讨论】:

【参考方案5】:

就我而言,我有多个由 heroku-accounts gem 管理的 heroku 帐户,并且在我更改其中一个帐户的密码后身份验证开始失败。

我遵循的让事情恢复正常的步骤:

    从 heroku 帐户中删除了该帐户(无法通过身份验证):

    heroku 帐户:删除帐户名

    打开一个新终端,然后再次添加我刚刚删除的帐户:

    heroku 帐户:添加 account_name --auto

您必须在此处使用您的新凭据

就是这样。问题解决了。

【讨论】:

【参考方案6】:

heroku accounts:remove personal 或您拥有的任何帐户名称

git config --unset heroku.account

heroku accounts:add personal 然后登录

【讨论】:

以上是关于更改密码后 Heroku CLI 中的身份验证失败的主要内容,如果未能解决你的问题,请参考以下文章

Heroku CLI 身份验证问题

heroku CLI 通过令牌进行身份验证

更改密码后 Azure ChainedTokenCredential 失败

启用 2FA 后 Git 身份验证失败

Heroku - 致命:用户 <> 的密码验证失败

更改 cookie 文件后 RabbitMQ 节点身份验证失败