我在计算机上使用多个Heroku帐户时遇到了麻烦。
事情是,通过使用heroku gem切换帐户,它之前的效果很好。但是现在(即使我已经生成了新的SSH密钥)它也无法工作。
当我执行git push heroku master
时,它只是说:
my@email.com无权访问my_app_name
有没有人对如何解决这个问题有任何建议?
答案 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):
这应该是所有人;在部署其他应用程序时,你只需要推动另一台遥控器。
答案 3 :(得分:6)
我会在heroku-accounts plugin添加一些内容...此示例假设您已存在的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.work。heroku sharing:add <new owner email>
(b)的协作者,请将应用程序切换到heroku。个人使用heroku accounts:set personal
(c)使用heroku sharing:transfer <new owner email>
将应用从旧帐户转移到新帐户然后(d)使用{{1}删除旧电子邮件地址协作者(如果您愿意) } **请注意我提供的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>