多个heroku帐户

Eri*_*rik 91 git heroku

我在计算机上使用多个Heroku帐户时遇到了麻烦.

事情是,通过使用heroku gem切换帐户,它之前的效果很好.但是现在(即使我已经生成了新的SSH密钥)它也无法工作.

当我这样做时git push heroku master它只是说:

my@email.com无权访问my_app_name

有没有人对如何解决这个问题有任何建议?

ban*_*tic 162

您需要确保使用正确的ssh密钥.

这样做的方式(以及heroku帐户插件提示你的方式)是在〜/ .ssh/config中为ssh配置文件添加一个部分.例如,对于我的工作heroku帐户我在我的ssh配置中有这个:

Host heroku.work
  HostName heroku.com
  IdentityFile ~/.ssh/id_heroku_work_rsa
  IdentitiesOnly yes
Run Code Online (Sandbox Code Playgroud)

现在,这是至关重要的,您需要确保您的git远程设置为使用相同的命名主机.在这种情况下,它是heroku.work.通常情况下,如果您只使用一个帐户使用heroku,那么它将是heroku.com.

因此,您需要编辑git remote(您可以在.git/config计算机上的repo文件中执行此操作).将文件更改为:

 [remote "heroku"]
   url = git@heroku.work:<appname>.git
Run Code Online (Sandbox Code Playgroud)

注意heroku.工作,而不是heroku.com,并在heroku上将<appname>替换为您的应用程序名称(也称为您的回购名称).

  • 是啊!编辑.git/config为我做了诀窍 (4认同)

小智 35

我通过使用heroku-accounts插件解决了这个问题

请看这里的说明

http://martyhaught.com/articles/2010/12/14/managing-multiple-heroku-accounts/


Bas*_*tes 7

您必须被接受为您不拥有的项目的合作者.

它的工作原理如下(使用git):

  1. 该项目的所有者前往heroku的项目控制台
  2. 所有者添加协作者的电子邮件地址(用于注册协作者的地址)
  3. 合作者在他的帐户中设置他的公安密钥(如果他还没有)
  4. 协作者将另一个项目添加并设置为另一个远程

这应该是所有人; 在部署其他应用程序时,您只需要推送另一台遥控器.


jpw*_*ynn 6

我将在heroku-accounts插件中添加一些内容...此示例假设您已存在的heroku帐户将是heroku.work并且您正在添加一个新帐户heroku.personal.

它还介绍了如何将应用程序从一个应用程序移动到另一个应用程序,例如,如果您已达到最大25个应用程序并且正在创建新帐户并希望将一些辅助项目和实验性应用程序移出主帐户.

  1. 您可能需要使用该插件来创建您的旧帐户和新帐户,例如,如果您有一个开始,您不能只添加一个新的heroku.personal,您需要创建heroku.work来替换旧的
  2. 您需要将旧应用程序重新分配给heroku.work
  3. 如果你正在移动的应用程序,不分配该应用(使用到heroku.personal heroku accounts:set personal),直到您转移使用的Heroku该应用sharing如所描述的条命令https://devcenter.heroku.com/articles/transferring-apps

所以你可能需要的步骤是:

  1. 安装heroku-account插件
  2. 转到heroku.com并创建新的帐户(如果您还没有第二个帐户)
  3. 运行heroku accounts:add work --auto以创建一个新的heroku.work帐户来替换旧的默认帐户(因此请使用您一直使用的相同凭据).您还需要将新密钥上传到heroku:heroku keys:add ~/.ssh/identity.heroku.work.pub
  4. 运行heroku accounts:add personal --auto以创建一个新的heroku.personal帐户(例如,使用您的新heroku帐户的新凭据).您还需要将新密钥上传到heroku:heroku keys:add ~/.ssh/identity.heroku.personal.pub
  5. 对于每个应用程序,cd到项目根然后运行heroku accounts:set work(所有它设置git使用你的heroku.work,这是(在这个例子中)你一直在使用的相同的heroku帐户,只是现在它被称为heroku.工作.
  6. 如果你想将一个应用程序从heroku.work移动到heroku.personal,(a)将新的heroku帐户添加为heroku sharing:add <new owner email>(b)在本地目录中的协作者,使用heroku accounts:set personal(c)transfer**将应用程序切换到heroku.personal 应用程序从旧帐户到新帐户heroku sharing:transfer <new owner email>然后使用(d)删除旧的电子邮件地址协作者(如果您愿意)使用heroku sharing:remove <old owner email>

**请注意我提供的heroku链接说,有任何付费资源移动应用程序有特殊要求.通常,删除付费资源,然后稍后再添加,或获得支持.


Jam*_*coe 6

Heroku插件https://github.com/ddollar/heroku-accounts已被弃用.Heroku现在维护自己的https://github.com/heroku/heroku-accounts.不幸的是,它似乎没有按项目存储它应该使用的帐户,因此您需要运行

$ heroku accounts:set account_name
Run Code Online (Sandbox Code Playgroud)

每次要使用Heroku命令行工具时.

有权访问bash shell的人的快速解决方案:创建一个本地bin目录(它已经存在于Rails应用程序中)并在那里创建bin/heroku.内容:

#!/bin/bash
/usr/bin/heroku accounts:set account_name
/usr/bin/heroku $*
Run Code Online (Sandbox Code Playgroud)

(根据需要替换"project_name")然后运行

$ chmod + x bin/heroku

然后你就可以跑了

$ bin/heroku运行控制台

它将自动为您使用正确的Heroku帐户.更好的是将./bin添加到您的路径中,这样您就可以恢复运行:

$ heroku运行控制台


cat*_*sby -1

编辑该项目的配置,设置正确的电子邮件。从该存储库的根目录,git config user.email <heroku email>