多个heroku帐户

时间:2011-01-11 21:58:56

标签: git heroku

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

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

当我执行git push heroku master时,它只是说:

  

my@email.com无权访问my_app_name

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

14 个答案:

答案 0 :(得分:162)

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

执行此操作的方式(以及heroku帐户插件提示您的方式)是在〜/ .ssh / config中向ssh配置文件添加一个部分。例如,对于我的工作heroku帐户,我在我的ssh配置中有这个:

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。工作,而不是heroku。 com ,并替换&lt; appname&gt;在heroku上使用你的应用程序名称(又名你的回购名称)。

答案 1 :(得分:35)

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

请点击此处查看说明

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

答案 2 :(得分:7)

你必须被接受为你不拥有的项目的合作者。

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

  1. 项目的所有者前往heroku的项目控制台
  2. 所有者添加协作者的电子邮件地址(用于注册协作者的地址)
  3. 协作者在他的帐户中设置了他的公安密钥(如果他还没有)
  4. 协作者将另一个项目添加并设置为另一个远程
  5. 这应该是所有人;在部署其他应用程序时,你只需要推动另一台遥控器。

答案 3 :(得分:6)

我会在heroku-accounts plugin添加一些内容...此示例假设您已存在的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
  4. 所述

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

    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.work。
    6. 如果您想将应用程序从heroku.work移动到heroku.personal,(a)将新的heroku帐户添加为您的本地目录中heroku sharing:add <new owner email>(b)的协作者,请将应用程序切换到heroku。个人使用heroku accounts:set personal(c)使用heroku sharing:transfer <new owner email>将应用从旧帐户转移到新帐户然后(d)使用{{1}删除旧电子邮件地址协作者(如果您愿意) }
    7. **请注意我提供的heroku链接说,有任何付费资源移动应用程序有特殊要求。一般情况下,删除付费资源,然后稍后再添加,或获得支持。

答案 4 :(得分:5)

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

$ heroku accounts:set account_name

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

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

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

(替换&#34; project_name&#34;视情况而定)然后运行

$ chmod + x bin / heroku

然后您可以运行

$ bin / heroku运行控制台

它将自动为您使用正确的Heroku帐户。更好的方法是将./bin添加到您的路径中,以便您恢复正常运行:

$ heroku运行控制台

答案 5 :(得分:2)

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

答案 6 :(得分:1)

为了让我能够使用Git和Heroku控制台,我必须按照bantic的指示添加创建ssh配置,但我还必须为我的.git配置创建两个遥控器:

[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/*

答案 7 :(得分:1)

这一直困扰着我,我从未找到过我喜欢的解决方案。终于找到了一个。

(OS X特定答案。)

您可以创建新用户。转到系统偏好设置 - &gt;用户&amp;群组 - &gt;添加用户或组按钮。您可以为不同的heroku帐户创建一些用户,我只是命名为我的user1,user2等。

然后转到系统偏好设置 - &gt;分享 - &gt;远程登录 - &gt;允许访问:所有用户

此时,您可以前往终端并执行以下操作:

$ ssh user1@localhost

然后你可以这样做:

$ heroku login
$ heroku keys:add

答案 8 :(得分:1)

我使用nano .git / config然后替换了远程&#34; heroku&#34;的url的值。与heroku.com&gt;应用&gt;设置&gt;显示配置变量&gt; Heroku Git URL

答案 9 :(得分:0)

我有完全相同的问题。

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

答案 10 :(得分:0)

我正在使用 win7

1)在win7中创建另一个用户帐户并登录

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

3)创建并上传新的RSA密钥(此处的说明:https://devcenter.heroku.com/articles/keys

4)然后随心所欲(创建新应用,将文件推送到它......)

5)每次您需要使用原始的heroku帐户时,只需登录原始的win用户帐户并使用heroku

答案 11 :(得分:0)

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

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

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

3)然后将新密钥添加到ssh-agent: - ssh-add~ / .ssh / seckey

4)然后将新密钥添加到heroku: - heroku密钥:添加〜/ .ssh / seckey

5)将SSH配置文件添加为〜/ .ssh / config和内容如下

主持heroku.com 主机名heroku.com 港口22 身份只是的 IdentityFile~ / .ssh / seckey 用户mvjohn@klairvoynat.com

主持heroku.com 主机名heroku.com 港口22 身份只是的 IdentityFile~ / .ssh / id_rsa 用户mvjohn@hotmail.com

6)使用

克隆代码

a)git clone git@heroku.com:your-application.git b)heroku git:clone -a your-application

答案 12 :(得分:0)

安装Heroku-accounts插件并进行配置!

安装

 heroku plugins:install heroku-accounts

用法

要添加帐户:

$ heroku accounts:add personal
  Enter your Heroku credentials.
  Email: david@heroku.com
  Password: ******

要列出帐户:

$ heroku accounts
  * personal
    work

要切换到其他帐户:

heroku accounts:set personal

要查找当前帐户:

$ heroku accounts:current
  personal

要删除帐户:

$ heroku accounts:remove personal
  Account removed: personal

设置为您的有效heroku帐户并推送更改。

答案 13 :(得分:-1)

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