多个heroku帐户

在我的电脑上使用多个Heroku帐户时遇到问题。

事情是,它很好,以前用herokugem切换帐户很好。 但现在(即使我已经生成新的SSH密钥),它不会工作。

当我做一个git push heroku master它只是说:

my@email.com无权访问my_app_name

有没有人有任何build议,我怎么能解决这个问题?

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

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

 Host heroku.work HostName heroku.com IdentityFile ~/.ssh/id_heroku_work_rsa IdentitiesOnly yes 

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

所以你需要编辑git远程(你可以在你机器上的repo的.git/config文件中)。 将文件更改为如下所示:

  [remote "heroku"] url = git@heroku.work:<appname>.git 

注意heroku。 工作 ,而不是英雄。 com ,并用heroku上的应用程序名称(又名回购站名称)replace<appname>。

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

请参阅这里的指示

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

您必须被接受为您不属于自己的项目的合作者。

它的工作原理是这样的(使用git):

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

这应该是所有的人, 您只需在另一个应用程序上部署时推送另一个远程。

我会添加一些事情重新heroku帐户插件 …这个例子假设您预先存在的heroku帐户将是heroku.work,你正在添加一个新帐户heroku.personal。

它还介绍了如何将应用程序从一个应用程序移到另一个应用程序,例如,如果您已经打开了25个应用程序,并且正在创build一个新帐户,并且希望将一些副项目和实验应用程序移出您的主帐户。

  1. 您可能需要使用插件来创build您的旧帐户和新帐户,例如,如果您有一个开始,你不能只添加一个新的heroku.personal,你需要创buildheroku.work来取代你的旧帐户
  2. 您需要将旧应用重新分配给您的heroku.work
  3. 如果您正在移动应用程序,请不要将应用程序分配给heroku.personal(使用heroku accounts:set personal ),直到您使用heroku sharing转移应用程序,如https://devcenter.heroku.com/articles/交接应用;

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

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

**请注意,我提供的heroku链接表示,有一些特殊的要求来移动任何付费资源的应用程序。 一般来说,删除有偿的资源,然后将其添加回来,或有支持做。

Heroku插件https://github.com/ddollar/heroku-accounts已被弃用。; Heroku现在通过https://github.com/heroku/heroku-accounts维护它自己的。; 不幸的是,它似乎并不是按项目存储它应该使用的帐户,所以你需要运行

 $ heroku accounts:set account_name 

每次你想使用Heroku命令行工具。

有权访问bash shell的快速​​解决scheme:创build一个本地bin目录(它已经存在于Rails应用程序中),并在那里创buildbin / heroku。 内容:

 #!/bin/bash /usr/bin/heroku accounts:set account_name /usr/bin/heroku $* 

(根据情况replace“project_name”)然后运行

$ chmod + x bin / heroku

你可以运行

$ bin / heroku运行控制台

它会自动为您使用正确的Heroku帐户。 更好的办法是将./bin添加到你的path,所以你回到只是运行:

$ heroku运行控制台

我开始使用heroku帐户插件,但后来意识到我的好友可以让我在他的heroku帐户上的合作者,这就是所有需要的。

为了在Git和Heroku控制台上为我工作,我必须按照bantic的指示添加创buildsshconfiguration,但是我也必须创build两个远程configuration到我的.gitconfiguration:

 [remote "origin"] url = git@heroku.work:pacific-rock-4904.git fetch = +refs/heads/*:refs/remotes/heroku/* [remote "heroku"] url = git@heroku.com:pacific-rock-4904.git fetch = +refs/heads/*:refs/remotes/heroku/* 

这一直在困扰我一段时间,我从来没有find我喜欢的解决scheme。 终于find了一个。

(OS X的具体答案)

你可以创build新的用户。 进入系统首选项 – >用户和组 – >添加用户或组button。 你可以为不同的heroku帐户创build一些用户,我刚刚命名为mine user1,user2等。

然后进入系统偏好设置 – >共享 – >远程login – >允许访问:所有用户

在这一点上,你可以去一个terminal,并执行以下操作:

 $ ssh user1@localhost 

那么你可以做这样的事情:

 $ heroku login $ heroku keys:add 

我有完全一样的问题。

这不是答案,但一个临时解决scheme是将您的“标准”heroku电子邮件作为协作者添加到您无法访问的应用程序。

我正在使用win7

1)在win7中创build另一个用户帐户并login

2)打开git bash并login到您的新heroku帐户

3)创build并上传新的RSA密钥(指令在这里: https : //devcenter.heroku.com/articles/keys )

4)然后做你想做的事情(创build新的应用程序,推送文件…..)

5)每次你需要使用你的原始heroku帐户只需login到你原来的win用户帐户,并与heroku工作

为新电子邮件创build新的公钥/私钥,如下所示

1)ssh-keygen -t rsa -C“mvjohn@klairvoynat.com”

2)提供保存密钥的新文件名(/home/.ssh/seckey)

3)然后添加你的新密钥到ssh-agent: – ssh-add〜/ .ssh / seckey

4)然后将你的新密钥添加到heroku: – heroku keys:add〜/ .ssh / seckey

5)将SSHconfiguration文件添加为〜/ .ssh / config和内容,如下所示

主机heroku.com主机名heroku.com端口22 IdentitiesOnly是IdentityFile〜/ .ssh / seckey用户mvjohn@klairvoynat.com

主机heroku.com主机名heroku.com端口22 IdentitiesOnly是IdentityFile〜/ .ssh / id_rsa用户mvjohn@hotmail.com

6)使用任何一个克隆代码

a)git clone git@heroku.com:your-application.git b)heroku git:clone -a你的应用程序

我使用nano .git / config,然后用heroku.com> apps> settings>显示远程“heroku”的url值。显示configurationvariables> Heroku Git URL

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