94 Stimmen

Mehrere Heroku-Konten

Ich habe Schwierigkeiten, wenn ich mit mehreren Heroku-Konten auf meinem Computer arbeite.

Das Ding ist, dass es früher super funktioniert hat, indem ich die Konten mit dem Heroku-Gem gewechselt habe. Aber jetzt (selbst nachdem ich neue SSH-Schlüssel generiert habe) funktioniert es nicht.

Wenn ich ein git push heroku master mache, sagt es einfach:

meine@email.com nicht autorisiert, auf meinen_app_name zuzugreifen

Hat jemand einen Rat, wie ich das lösen könnte?

164voto

bantic Punkte 4736

Du musst sicherstellen, dass du den richtigen SSH-Schlüssel verwendest.

Der Weg dies zu tun (und der Weg, wie das Heroku Accounts-Plugin dich auffordert) ist, einen Abschnitt zu deiner SSH-Konfigurationsdatei unter ~/.ssh/config hinzuzufügen. Zum Beispiel habe ich für mein Arbeits-Heroku-Konto Folgendes in meiner SSH-Konfiguration:

Host heroku.work
  HostName heroku.com
  IdentityFile ~/.ssh/id_heroku_work_rsa
  IdentitiesOnly yes

Jetzt, und das ist entscheidend, musst du sicherstellen, dass dein Git-Remote so eingerichtet ist, dass es diesen gleichen benannten Host verwendet. In diesem Fall ist es heroku.work. Normalerweise wäre es heroku.com, wenn du Heroku nur mit einem einzigen Konto verwenden würdest.

Also musst du das Git-Remote bearbeiten (du kannst dies in der .git/config-Datei deines Repos auf deiner Maschine tun). Ändere die Datei so wie folgt:

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

Beachte das heroku.work, nicht heroku.com, und ersetze durch den Namen deiner App (auch bekannt als Name deines Repos) auf Heroku.

36voto

Louis Gillies Punkte 396

Ich habe das Problem gelöst, indem ich das heroku-accounts Plugin verwendet habe

Hier finden Sie die Anweisungen

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

8voto

Bastes Punkte 1026

Sie müssen als Mitarbeiter für das Projekt akzeptiert werden, das Ihnen nicht gehört.

Es funktioniert so (mit git) :

  1. Der Besitzer des Projekts geht zur Heroku-Konsole für das Projekt
  2. Der Besitzer fügt die E-Mail-Adresse des Mitarbeiters hinzu (die, die zur Registrierung des Mitarbeiters verwendet wurde)
  3. Der Mitarbeiter richtet seinen öffentlichen Sicherheitsschlüssel in seinem Konto ein (wenn er dies noch nicht getan hat)
  4. Der Mitarbeiter fügt das andere Projekt hinzu und richtet es als weiteren Remote ein

Und das sollte alles sein ; Sie müssen nur auf dem anderen Remote pushen, wenn Sie auf der anderen App bereitstellen.

7voto

James Roscoe Punkte 650

Das Heroku-Plugin https://github.com/ddollar/heroku-accounts wurde eingestellt. Heroku unterhält jetzt sein eigenes unter https://github.com/heroku/heroku-accounts. Leider scheint es nicht projektweise zu speichern, welches Konto es verwenden soll, daher müssen Sie Folgendes ausführen:

$ heroku accounts:set account_name

jedes Mal, wenn Sie das Heroku-Befehlszeilentool verwenden möchten.

Schnelle Lösung für Personen mit Zugriff auf die Bash-Shell: Erstellen Sie ein lokales bin-Verzeichnis (es ist bereits in Rails-Anwendungen vorhanden) und erstellen Sie dort ein bin/heroku. Inhalt:

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

(ersetzen Sie "Projektname" entsprechend) Führen Sie dann aus

$ chmod +x bin/heroku

Sie können dann ausführen

$ bin/heroku run console

und es wird automatisch das richtige Heroku-Konto für Sie verwenden. Noch besser ist es, ./bin zu Ihrem Pfad hinzuzufügen, damit Sie nur noch Folgendes ausführen:

$ heroku run console

6voto

jpw Punkte 17999

Ich würde ein paar Dinge zum Heroku-Account-Plugin hinzufügen... Dieses Beispiel geht davon aus, dass Ihr vorhandener Heroku-Account heroku.work ist und Sie einen neuen Account heroku.personal hinzufügen.

Es beschreibt auch, wie man eine App von einem zum anderen verschiebt, zum Beispiel, wenn Sie Ihr Maximum von 25 Apps erreicht haben und ein neues Konto erstellen und einige Ihrer Nebenprojekte und experimentellen Apps aus Ihrem Hauptkonto verschieben möchten.

  1. Sie müssen wahrscheinlich das Plugin verwenden, um SOWOHL Ihren alten als auch Ihren neuen Account zu erstellen, z.B. wenn Sie bereits einen hatten, können Sie nicht einfach einen neuen heroku.personal hinzufügen, Sie müssen heroku.work erstellen, um Ihren alten zu ersetzen
  2. Sie müssen Ihre alten Apps Ihrem heroku.work neu zuweisen
  3. Wenn Sie eine App verschieben, weisen Sie die App nicht heroku.personal zu (mit heroku accounts:set personal), bis Sie die App mit dem heroku sharing-Befehl wie beschrieben unter https://devcenter.heroku.com/articles/transferring-apps übertragen haben

Also brauchen Sie wahrscheinlich folgende Schritte:

  1. Installieren Sie das Heroku-Account-Plugin
  2. Gehen Sie zu heroku.com und erstellen Sie Ihr neues Konto (wenn Sie nicht bereits ein zweites Konto haben)
  3. Führen Sie heroku accounts:add work --auto aus, um einen neuen Heroku.work-Account zu erstellen und Ihren alten Standardaccount zu ersetzen (verwenden Sie also die gleichen Anmeldeinformationen, die Sie die ganze Zeit verwendet haben). Sie müssen auch Ihren neuen Schlüssel zu Heroku hochladen: heroku keys:add ~/.ssh/identity.heroku.work.pub
  4. Führen Sie heroku accounts:add personal --auto aus, um einen neuen Heroku.personal-Account zu erstellen (verwenden Sie also Ihre neuen Anmeldeinformationen für Ihr neues Heroku-Konto). Sie müssen auch Ihren neuen Schlüssel zu Heroku hochladen: heroku keys:add ~/.ssh/identity.heroku.personal.pub
  5. Wechseln Sie für jede App zum Projektstammverzeichnis und führen Sie heroku accounts:set work aus (das richtet nur git ein, um Ihren heroku.work zu verwenden, der in diesem Beispiel der gleiche Heroku-Account ist, den Sie die ganze Zeit verwendet haben, nur jetzt heißt er heroku.work).
  6. Wenn Sie eine App von heroku.work zu heroku.personal verschieben möchten, (a) fügen Sie das neue Heroku-Konto als Mitwirkenden hinzu mit heroku sharing:add (b) im lokalen Verzeichnis, wechseln Sie die App zu heroku.personal mit heroku accounts:set personal (c) übertragen Sie die App ** vom alten Konto auf das neue Konto mit heroku sharing:transfer dann (d) entfernen Sie die alte E-Mail-Adresse des Mitwirkenden (wenn Sie möchten) mit heroku sharing:remove

** Beachten Sie, dass der von mir bereitgestellte Heroku-Link besondere Anforderungen angibt, um eine App mit kostenpflichtigen Ressourcen zu verschieben. Normalerweise entfernen Sie die kostenpflichtigen Ressourcen, fügen sie später wieder hinzu oder lassen den Support dies tun.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X