在计算机上使用多个Heroku帐户时遇到麻烦。
事实是,在使用heroku gem切换帐户之前,它的效果非常好。但是现在(即使我已经生成了新的SSH密钥),它也无法正常工作。
当我这样做时,git push heroku master
它只是说:
my@email.com无权访问my_app_name
有人对我该如何解决有任何建议吗?
在计算机上使用多个Heroku帐户时遇到麻烦。
事实是,在使用heroku gem切换帐户之前,它的效果非常好。但是现在(即使我已经生成了新的SSH密钥),它也无法正常工作。
当我这样做时,git push heroku master
它只是说:
my@email.com无权访问my_app_name
有人对我该如何解决有任何建议吗?
Answers:
您需要确保使用正确的ssh密钥。
执行此操作的方法(以及heroku帐户插件提示您的方法)是在〜/ .ssh / config中的ssh配置文件中添加一个部分。例如,对于我的工作heroku帐户,我的ssh配置中包含以下内容:
Host heroku.work
HostName heroku.com
IdentityFile ~/.ssh/id_heroku_work_rsa
IdentitiesOnly yes
现在,这很关键,您需要确保将git remote设置为使用同一命名的host。在这种情况下,它是heroku.work。如果您仅使用一个帐户使用heroku,通常是heroku.com。
因此,您需要编辑git remote(可以在.git/config
计算机上的repo文件中进行此操作)。将文件更改为如下所示:
[remote "heroku"]
url = git@heroku.work:<appname>.git
注意heroku。工作,而不是heroku。com,并在heroku上将<appname>替换为您的应用程序名称(又称您的回购名称)。
.ssh/config
使其能够heroku.work
解决heroku.com
我通过使用heroku-accounts插件解决了这个问题
看到这里的指示
http://martyhaught.com/articles/2010/12/14/managing-multiple-heroku-accounts/
您必须被接受为您不拥有的项目的合作者。
它的工作方式如下(使用git):
那应该是所有人; 您只需在其他应用程序上进行部署时就可以推入另一个遥控器。
我要在heroku-accounts插件中添加一些内容 ...此示例假定您先前存在的heroku帐户将是heroku.work,并且您要添加一个新帐户heroku.personal。
它还描述了如何将一个应用程序从一个转移到另一个,例如,如果您达到25个应用程序的最大数量并且正在创建一个新帐户,并且想要将一些辅助项目和实验性应用程序从您的主帐户中移出。
heroku accounts:set personal
),直到后您使用的Heroku传送该应用sharing
如所描述的条命令https://devcenter.heroku.com/articles/transferring-apps因此,您可能需要执行以下步骤:
heroku accounts:add work --auto
以创建一个新的heroku.work帐户来替换旧的默认帐户(因此,请使用一直使用的相同凭据)。您还需要将新密钥上传到heroku:heroku keys:add ~/.ssh/identity.heroku.work.pub
heroku accounts:add personal --auto
以创建一个新的heroku.personal帐户(例如,将新凭据用于您的新heroku帐户)。您还需要将新密钥上传到heroku:heroku keys:add ~/.ssh/identity.heroku.personal.pub
heroku accounts:set work
(所有操作都将git设置为使用您的heroku.work,在本示例中,在本示例中)(一直是您一直使用的同一个heroku帐户,直到现在,它被称为heroku。工作。heroku sharing:add <new owner email>
本地目录中的(b)作为协作者添加新的heroku帐户,请使用heroku accounts:set personal
(c)transfer ** 将应用程序切换至heroku.personal **。使用从旧帐户到新帐户的应用,heroku sharing:transfer <new owner email>
然后(d)使用以下方法删除旧的电子邮件地址协作者(如果需要)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的人员的快速解决方案:创建一个本地bin目录(它已在Rails应用程序中存在)并在其中创建bin / heroku。内容:
#!/bin/bash
/usr/bin/heroku accounts:set account_name
/usr/bin/heroku $*
(酌情替换“ project_name”)然后运行
$ chmod + x bin / heroku
然后可以运行
$ bin / heroku运行控制台
它将自动为您使用正确的Heroku帐户。最好还是在路径中添加./bin,这样您就可以重新运行:
$ heroku运行控制台
我开始使用heroku-accounts插件,但后来意识到我的伙伴可以让我成为他的heroku帐户的合作者,而这就是所有需要的。
为了使它同时适用于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/*
这已经困扰了我一段时间,但我从未找到自己喜欢的解决方案。终于找到了。
(特定于OS X的答案。)
您可以只创建新用户。转到系统偏好设置->用户和组->添加用户或组按钮。您可以为不同的heroku帐户创建一些用户,我仅将其命名为我的user1,user2等。
然后转到系统偏好设置->共享->远程登录->允许以下用户访问:所有用户
此时,您可以转到终端并执行以下操作:
$ ssh user1@localhost
然后,您可以执行以下操作:
$ heroku login
$ heroku keys:add
我使用nano .git / config,然后用heroku.com>应用程序>设置>显示配置变量> Heroku Git URL替换了远程“ heroku”的url值
为新电子邮件创建新的公用/专用密钥,如下所示
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)将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:您的应用程序.git b)heroku git:clone-您的应用程序
安装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帐户并推送更改。
编辑该项目的配置,设置正确的电子邮件。从该存储库的根目录开始git config user.email <heroku email>