複数のherokuアカウント


92

コンピューターで複数のHerokuアカウントを操作するときに問題が発生します。

問題は、heroku gemでアカウントを切り替えることにより、以前はうまく機能していたことです。しかし今は(新しいSSHキーを生成したとしても)機能しません。

私がするときgit push heroku masterそれはただ言う:

my@email.comはmy_app_nameへのアクセスを許可されていません

私がこれをどのように解決できるかについて誰かアドバイスはありますか?


ssh yourid @ server -vは何を与えるのですか?
Adam Dymitruk、2011年

「許可が拒否されました(公開鍵)」?
エリック

ああ、1つのメモ… "my@email.com"のメールは、Herokuアカウントのメールと同じではありません…そのため、問題を引き起こしているある種の混同があるようです。
Erik

プライベートキーとパブリックキーの両方をgit / .ssh / diectoryにコピーします。それは私のために働きます!
Dmitri Algazin 2014

回答:


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です。通常、1つのアカウントだけでherokuを使用している場合は、heroku.comになります。

したがって、gitリモートを編集する必要があります(これは、.git/configマシンのリポジトリのファイルで行うことができます)。ファイルを次のように変更します。

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

herokuに注意してください。仕事ではなく、Herokuの。com、および<appname>をheroku上のアプリの名前(別名リポジトリ名)に置き換えます。


1
これは、herokuのダッシュボードから製品アプリを作成するときに必要でした。
バシェ

1
ただし、git @ heroku.work ...はエンドポイントとして存在しません。エンドポイントをプッシュする方法を教えてください。-ああ、heroku-accountsプラグインが必要です。
jmstone617 2013

1
@jmstone 解決する.ssh/configための変更heroku.workheroku.com
2013

それは私の最後の別の問題でした、それをすべて理解しました。ありがとう!
jmstone617 2013

このページをブックマークしました。Herokuへのプッシュに問題があるときはいつでも、私はこの答えを読んで、自分が何をすべきかを理解しています。
セプター2014年

36

heroku-accountsプラグインを使用してこれを解決しました

手順についてはこちらをご覧ください

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


このツールの最大の問題は、暗号化されていないSSHキーが生成されることです。
Wolfram Arnold

手動でキーを作成すれば、その問題はなくなります。このプラグはこれに最適です!
クリス・ハフ

8

自分が所有していないプロジェクトの共同編集者として受け入れられる必要があります。

次のように動作します(gitを使用):

  1. プロジェクトの所有者は、プロジェクトのherokuのコンソールに移動します
  2. オーナーが共同編集者(共同作成者の登録に使用されたもの)のメールアドレスを追加します
  3. 共同編集者は自分のパブリックセキュリティキーを自分のアカウントに設定します(まだ作成していない場合)
  4. 共同編集者は、他のプロジェクトを別のリモートとして追加および設定します

そして、それはすべての人々であるべきです。他のアプリにデプロイするときは、他のリモートをプッシュする必要があります。


ありがとうございました!!!私はこれを理解しようと何時間も費やしました。SOや他のサイトでさまざまなアプローチをすべて試してみます。Herokuの両方のプロジェクトに同じメールを追加することは、間違いなく最も簡単なソリューションです。
Bセブン

私は何年もかけて識別ファイルをセットアップし、さまざまなトリックを実行して複数のキーを機能させるようにしてきましたが、この答えは、この機能を実行するための最も簡単な方法です。元のアカウントを共同編集者として追加し、同じキーを使用します。簡単です。
Peter Nixey 2013年

6

heroku-accountsプラグインについていくつか追加します ...この例では、既存のherokuアカウントがheroku.workであり、新しいアカウントheroku.personalを追加していることを前提としています。

また、たとえばアプリの最大数が25になり、新しいアカウントを作成していて、いくつかのサイドプロジェクトと実験的なアプリをメインアカウントから移動したい場合など、アプリを別のアプリに移動する方法についても説明します。

  1. おそらく、プラグインを使用して古いアカウントと新しいアカウントの両方を作成する必要があります。たとえば、最初からアカウントを作成していた場合、新しいheroku.personalを追加するだけではなく、古いアカウントを置き換えるためにheroku.workを作成する必要があります。
  2. 古いアプリをheroku.workに再割り当てする必要があります
  3. あなたがしている場合は移動のアプリを、(使用してheroku.personalにアプリを割り当てないheroku accounts:set personalまで)後のあなたはHerokuのを使ってアプリを転送sharing述べたようcommmandをhttps://devcenter.heroku.com/articles/transferring-apps

したがって、おそらく必要な手順は次のとおりです。

  1. heroku-accountプラグインをインストールする
  2. heroku.comにアクセスして、新しいアカウントを作成します(まだ2番目のアカウントがない場合)。
  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と呼ばれています。作業。
  6. アプリをheroku.workからheroku.personalに移動する場合は、(a)新しいherokuアカウントをheroku sharing:add <new owner email>(b)のコラボレーターとしてローカルディレクトリに追加し、heroku accounts:set personal(c)transfer ** を使用してアプリをheroku.personalに切り替えます。heroku sharing:transfer <new owner email>(d)を使用して古いアカウントから新しいアカウントにアプリを(d)使用して古いメールアドレスのコラボレーターを削除しますheroku sharing:remove <old owner email>

**私が提供したherokuリンクには、有料リソースを使用してアプリを移動するための特別な要件があると記載されています。通常は、有料のリソースを削除してから、後で追加するか、サポートに依頼してください。


6

Herokuプラグインhttps://github.com/ddollar/heroku-accountsは非推奨になりました。Herokuは現在、https://github.com/heroku/heroku-accountsで独自に管理しています。残念ながら、使用する必要があるアカウントをプロジェクトごとに保存していないようですので、実行する必要があります

$ heroku accounts:set account_name

Herokuコマンドラインツールを使用するたび。

bashシェルにアクセスできる人のための簡単な解決策:ローカルのbinディレクトリを作成し(Railsアプリケーションにはすでに存在します)、そこにbin / herokuを作成します。目次:

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

(必要に応じて「project_name」を置き換え)次に実行します

$ chmod + x bin / heroku

次に実行できます

$ bin / heroku run console

自動的に適切なHerokuアカウントが使用されます。./binをパスに追加して、実行するように戻すことをお勧めします。

$ heroku実行コンソール


2

私はheroku-accountsプラグインの使用を開始しましたが、私の仲間が彼のherokuアカウントの共同作業者になるだけで十分だと気づきました。


特に両方のアカウントのパスワードを持っている場合は、これを
賛成してください

1

これをGitとHerokuコンソールの両方で機能させるには、banticの指示に従ってssh構成を作成する必要がありましたが、.git構成へのリモートを2つ作成する必要もありました。

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

1
そして、何にプッシュしますか?Herokuまたは起源?
jmstone617 2013

1

これはしばらくの間私を悩ませてきました、そして私は私が好きな解決策を見つけることができませんでした。やっと見つけた。

(OS X固有の回答。)

新しいユーザーを作成するだけです。[システム環境設定]-> [ユーザーとグループ]-> [ユーザーまたはグループの追加]ボタンに移動します。さまざまなherokuアカウント用にいくつかのユーザーを作成できます。私は自分の名前をuser1、user2などにしています。

次に、[システム環境設定]-> [共有]-> [リモートログイン]-> [アクセスを許可]に移動します。

この時点で、ターミナルに移動して次の操作を実行できます。

$ ssh user1@localhost

その後、次のようなことができます:

$ heroku login
$ heroku keys:add

これは完璧に思えますが、異なるsshユーザーに同じフォルダとファイルへのアクセス権を与えることは可能ですか?
仲間の見知らぬ人

1

nano .git / configを使用してから、リモート「heroku」のURLの値をheroku.comに置き換えました>アプリ>設定>設定変数を表示> Heroku Git URL


0

まったく同じ問題があります。

これは答えではありませんが、一時的な解決策は、「標準」のherokuメールをコラボレーターとして、アクセスできないアプリに追加することです。


申し訳ありませんが、これについてフォローするのを忘れていましたが、コンピュータを再起動すると問題が解決しました。あなたを解決しないかもしれません。
Erik

ええ、私はそのいくつかの場所についても読みました。それは私にとってはうまくいきませんでした。
kbjerring 2011年

0

私はwin7を使用しています

1) win7で別のユーザーアカウントを作成し、ログインします

2) git bashを開き、新しいherokuアカウントにログインします

3)新しいRSAキーを作成してアップロードします(手順はこちら:https : //devcenter.heroku.com/articles/keys

4)次に、好きなことを実行します(新しいアプリを作成し、そこにファイルをプッシュします.....)

5)元のherokuアカウントで作業する必要があるたびに、元のwinユーザーアカウントにログインして、herokuで作業します


私はこれをお勧めしません-以下のより良い解決策がある場合、ローカルPCアカウントを切り替える必要があるのはやりすぎです。
Rafi Jacoby

これはとにかくオプションです
mehdok

0

次のように、新しい電子メールの新しい公開/秘密鍵を作成します

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 / configとしてSSH構成ファイルを追加し、次のようにコンテンツを追加します

ホストheroku.comホスト名heroku.comポート22 IdentitiesOnly yes IdentityFile〜/ .ssh / seckeyユーザーmvjohn@klairvoynat.com

ホストheroku.comホスト名heroku.comポート22 IdentitiesOnly yes IdentityFile〜/ .ssh / id_rsaユーザーmvjohn@hotmail.com

6)いずれかを使用してコードを複製する

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


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アカウントに設定して、変更をプッシュします。


-1

そのプロジェクトの設定を編集して、正しいメールを設定します。そのリポジトリのルートから、git config user.email <heroku email>


効果はないようです。恐れ入ります…
Erik

そのコマンドに「--global」フラグを追加するとどうなりますか?Heroku gemが、プロジェクトのレポメールではなく、それを読んでいたことがあります。
danneu
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.