Heroku:您的帐户 example@email.com 无权访问 <app-name>

Posted

技术标签:

【中文标题】Heroku:您的帐户 example@email.com 无权访问 <app-name>【英文标题】:Heroku: Your account example@email.com does not have access to <app-name> 【发布时间】:2014-01-02 10:21:07 【问题描述】:

我无法将代码推送到 Heroku。我有一个帐户,但我忘记了密码。我创建了一个新帐户并尝试使用它进行推送,但现在它向我显示此错误:

Your account someoneelse@gmail.com does not have access to
! SSH Key Fingerprint: 

如何使用新帐户登录?我想使用新帐户删除此错误消息。我已将我最新的 ssh 密钥上传到 heroku。我已经尝试了所有方法来在 heroku 上推送代码(基本设置),但我无法克服这个错误。


您帐户中的任何应用程序都有两个 ssh 密钥,您应该删除不在“~/.ssh/”文件夹中的一个或按照以下步骤操作。

解决办法如下:

    转到www.heroku.com 并使用引发错误的帐户登录。

    转到应用程序设置。 (例如,对于名为“rails-demo”的应用程序,请转到 rails-demo 设置并检查是否有两个 ssh 密钥)

    删除系统中不再存在的密钥

    或者您可以同时删除它们,然后使用这些命令生成新的。

    -&gt; ssh-keygen -t rsa

    -&gt; heroku keys:add

    上传新的,然后在你的控制台输入

    -&gt; heroku log-in

    使用您的帐户登录,然后将其推送到您的应用程序。

    现在解决了。

【问题讨论】:

【参考方案1】:

你需要:

清除 Heroku 应用程序中您本地没有的任何额外 ssh 密钥(请参阅 s-s-r 的 edit)

注册您的新帐户(如“Managing Multiple Heroku Accounts”中所述):

heroku accounts:add myNewAccount(2013 年,ddollar/heroku-accounts已弃用) 使用 heroku/heroku-accountsheroku plugins:install heroku-accountsheroku accounts:add myNewAccount 后跟 Heroku 凭据(电子邮件、密码)

确保your ~/.ssh/config file has an 'myNewAccount' entry

Host heroku.myNewAccount
  HostName heroku.com
  IdentityFile ~/.ssh/id_heroku_myNewAccount_rsa
  IdentitiesOnly yes

然后更改远程“来源”网址

git remote set-url origin git@heroku.myNewAccount:<appname>.git

或者,Ian Vaughan comments below

origin 在使用 'heroku-toolbelt' 时通常为 heroku

git remote set-url heroku git@heroku.myNewAccount:<appname>.git

最后一步将确保git push 将使用您的新帐户,而不是旧帐户。

在“Multiple heroku accounts”查看更多信息。


如果您在配置文件中添加“用户 git”,则可以删除凭据用户名“git”:

Host heroku.myNewAccount
  User git
  HostName heroku.com
  IdentityFile ~/.ssh/id_heroku_myNewAccount_rsa
  IdentitiesOnly yes

这意味着你可以使用:

git remote set-url origin heroku.myNewAccount:<appname>.git
# or
git remote set-url heroku heroku.myNewAccount:<appname>.git

【讨论】:

但我想删除所有凭据。怎么做?我仍然收到错误。 @s-s-r 我已经编辑了答案:您可以删除 url 的“git@”部分,但在访问远程 url 时必须使用某种凭据。 就我而言,只需要最后一步。当我创建帐户时,它的应用名称错误。仅将“heroku”的“来源”和应用程序名更改为我正确的应用程序名。 正如@Cassios.Cabral 所说,origin 在使用heroku-toolbelt 时通常为heroku,不确定答案是否需要更新,因为origin 是常态,人们知道那是什么是什么意思?! @VonC 我喜欢or,我没想到。【参考方案2】:

我希望这对你有用。通过使用此 gem,您可以管理多个帐户 https://github.com/ddollar/heroku-accounts

【讨论】:

你可以这样做,但你应该从你的 heroku 帐户应用程序中删除额外的 ssh 密钥。请参阅我的解决方案和@VonC 的答案。【参考方案3】:

从您的“homedir/.ssh”中删除 ssh 密钥并检查该 ssh 密钥是否在那里不可用。

更新后我用你的问题解决了。

【讨论】:

【参考方案4】:

如果您有多个帐户,请使用新帐户或所需帐户登录

$ heroku login
Enter your Heroku credentials.
Email: new@example.com
Password: 

$ heroku keys:add

如果您的旧密钥已用于另一个 Heroku 帐户,请生成密钥。

【讨论】:

那么旧的呢?如果我需要使用旧帐户呢?这仅用于 heroku 帐户身份验证。这行不通。【参考方案5】:

这对我有用:

$ heroku auth:logout

然后

$ heroku auth:login

【讨论】:

+1 分享您的解决方案。是的,这将破坏您当前的会话,以便您可以在之后继续另一个会话。 知道这很简单。【参考方案6】:

在将 Rails 应用程序部署到 Heroku 时,我遇到了同样的问题。

使用以下命令登录 Heroku CLI 后:

heroku login

并使用以下命令创建新应用:

heroku create

当我运行命令 git push heroku main 时,我收到以下错误:

remote: !       Your account name@mymail.com does not have access to stark-temple-39676.
fatal: unable to access 'https://git.heroku.com/stark-temple-39676.git/': The requested URL returned error: 403

我尝试了几种解决方案,但没有一个对我有用。

这是我修复它的方法

首先我运行命令 git remote -v 来查看远程列表,我得到了这个输出:

heroku  https://git.heroku.com/stark-temple-39676.git (fetch)
heroku  https://git.heroku.com/stark-temple-39676.git (push)

问题在于 heroku git repo stark-temple-39676 的名称与应用程序的名称 gentle-lowlands-46404 不同。显然,heroku 存储库名称 stark-temple-39676 是针对我之前使用另一个 Heroku 帐户部署到 Heroku 的以前的应用程序。

我所要做的就是删除 heroku repo 名称:

git remote rm heroku

然后删除应用;

heroku apps:destroy --app=gentle-lowlands-46404

然后重新创建应用程序:

heroku create

这次我使用命令推送应用时:

git push heroku main

效果很好。

注意

    如果您仍然需要它,您可以将旧应用的 repo 名称修改为 heroku-old,然后重新创建新应用。 您还可以从 Heroku 帐户仪表板添加新应用程序的 git 存储库 URL,而不是删除它并重新创建它。

就是这样。

我希望这会有所帮助

【讨论】:

以上是关于Heroku:您的帐户 example@email.com 无权访问 <app-name>的主要内容,如果未能解决你的问题,请参考以下文章

登录 Heroku CLI 时 IP 地址不匹配

多个heroku帐户

Heroku免费帐户有限?

无法从命令行登录 Heroku 帐户

与 Heroku 帐户的 SSH 连接失败

Heroku 免费帐户,一次性 dynos