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 密钥)
删除系统中不再存在的密钥
或者您可以同时删除它们,然后使用这些命令生成新的。
-> ssh-keygen -t rsa
-> heroku keys:add
上传新的,然后在你的控制台输入
-> heroku log-in
使用您的帐户登录,然后将其推送到您的应用程序。
现在解决了。
【问题讨论】:
【参考方案1】:你需要:
清除 Heroku 应用程序中您本地没有的任何额外 ssh 密钥(请参阅 s-s-r 的 edit)注册您的新帐户(如“Managing Multiple Heroku Accounts”中所述):
(2013 年,heroku accounts:add myNewAccount
ddollar/heroku-accounts
已弃用)
使用 heroku/heroku-accounts
和 heroku plugins:install heroku-accounts
heroku 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>的主要内容,如果未能解决你的问题,请参考以下文章