多个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):
- 该项目的所有者去该项目的Heroku的控制台
- 所有者添加协作者的电子邮件地址(用于注册协作者的电子邮件地址)
- 合作者在他的账户中设置公钥(如果他还没有的话)
- 协作者将另一个项目添加并设置为另一个远程
这应该是所有的人, 您只需在另一个应用程序上部署时推送另一个远程。
我会添加一些事情重新heroku帐户插件 …这个例子假设您预先存在的heroku帐户将是heroku.work,你正在添加一个新帐户heroku.personal。
它还介绍了如何将应用程序从一个应用程序移到另一个应用程序,例如,如果您已经打开了25个应用程序,并且正在创build一个新帐户,并且希望将一些副项目和实验应用程序移出您的主帐户。
- 您可能需要使用插件来创build您的旧帐户和新帐户,例如,如果您有一个开始,你不能只添加一个新的heroku.personal,你需要创buildheroku.work来取代你的旧帐户
- 您需要将旧应用重新分配给您的heroku.work
- 如果您正在移动应用程序,请不要将应用程序分配给heroku.personal(使用
heroku accounts:set personal
),直到您使用herokusharing
转移应用程序,如https://devcenter.heroku.com/articles/交接应用;
所以你可能需要的步骤是:
- 安装heroku-account插件
- 去heroku.com并创build你的新帐户(如果你还没有第二个帐户)
- 运行
heroku accounts:add work --auto
自动创build一个新的heroku.work帐户,以取代您的旧的默认帐户(所以使用相同的凭据,你一直在使用)。 您还需要将您的新密钥上传到heroku:heroku keys:add ~/.ssh/identity.heroku.work.pub
- 运行
heroku accounts:add personal --auto
自动创build一个新的heroku.personal帐户(例如使用您的新的heroku帐户的新凭据)。 您还需要将您的新密钥上传到heroku:heroku keys:add ~/.ssh/identity.heroku.personal.pub
- 对于每个应用程序,cd到项目根目录,然后运行
heroku accounts:set work
(所有这一切设置git使用你的heroku.work,这是(在这个例子中)是你一直使用的同一个heroku帐户现在叫做heroku.work。 - 如果你想将一个应用程序从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>