2011-01-11 11 views
87

Ich habe Probleme bei der Arbeit mit mehreren Heroku-Konten auf meinem Computer.Mehrere Heroku-Konten

Die Sache ist, dass es schon vorher gut funktioniert hat, indem ich mit dem Heroku-Juwel gewechselt habe. Aber jetzt (obwohl ich neue SSH-Schlüssel erzeugt habe) funktioniert es nicht.

Als ich tun git push heroku master es sagt nur:

[email protected] nicht my_app_name für den Zugriff auf autorisierte

Hat jemand irgendwelche Ratschläge, wie ich dieses Problem lösen könnte?

+0

was gibt ssh yourid @ server -v geben? –

+0

"Berechtigung verweigert (publickey)."? – Erik

+0

Oh, eine Anmerkung ... Die E-Mail "[email protected]" ist nicht dieselbe E-Mail wie die E-Mail des Heroku-Kontos ... also scheint es eine Art von Verwechslung zu geben, die das Problem verursacht. – Erik

Antwort

-1

Bearbeiten Sie Ihre Konfiguration für dieses Projekt und stellen Sie die richtige E-Mail ein. Von der Wurzel dieses Repository, git config user.email <heroku email>

+0

Scheint keinen Effekt zu haben Ich habe Angst ... – Erik

+0

Was ist, wenn Sie das Flag "--global" zu diesem Befehl hinzufügen? Manchmal las Heroku-Edelstein das statt der Repo-E-Mail des Projekts für mich. – danneu

0

Ich habe genau das gleiche Problem.

Dies ist nicht die Antwort, aber eine temporäre Lösung besteht darin, Ihre "Standard" -Heroku-E-Mail als Mitbearbeiter zu der App hinzuzufügen, auf die Sie nicht zugreifen können.

+0

Entschuldigung, ich habe vergessen zu folgen, aber mein Computer neu gestartet löste das Problem. Kann deine nicht lösen. – Erik

+0

Ja, ich habe darüber auch etwas gelesen. Es hat aber nicht für mich funktioniert. – kbjerring

7

Sie haben als Mitarbeiter an dem Projekt in Kauf genommen werden Sie nicht besitzen.

Es funktioniert wie folgt (mit git):

  1. Der Eigentümer des Projekts für das Projekt Heroku Konsole geht
  2. Der Inhaber fügt die E-Mail-Adresse des Mitarbeiters (derjenige, der verwendet wurde registrieren die Mitarbeiter des)
  3. der Mitarbeiter setzt seine öffentlichen Sicherheitsschlüssel in seinem Konto (wenn er nicht bereits getan haben)
  4. die Mitarbeiter ergänzt und setzt das andere Projekt als eine andere Remote-
  5. bis

Und das sollten alle Leute sein; Sie müssen nur auf die andere Fernbedienung drücken, wenn Sie die andere App bereitstellen.

+0

Danke !!! Ich habe stundenlang versucht, das herauszufinden. Selbst die verschiedenen Ansätze auf SO und anderen Seiten ausprobieren. Das Hinzufügen der gleichen E-Mail zu beiden Projekten auf Heroku ist definitiv die einfachste Lösung. –

+0

Ich habe viel Zeit damit verbracht, eine Identifizierungsdatei zu erstellen und alle möglichen Tricks zu machen, um mehrere Schlüssel funktionieren zu lassen, aber diese Antwort ist bei weitem der einfachste Weg, dies zum Laufen zu bringen. Fügen Sie Ihr ursprüngliches Konto als Mitbearbeiter hinzu und verwenden Sie denselben Schlüssel. Einfach. –

161

Sie müssen sicherstellen, dass Sie den richtigen SSH-Schlüssel verwenden.

Der Weg dies (und die Art, wie das Heroku-Konto-Plugin Sie auffordert) besteht darin, einen Abschnitt zu Ihrer SSH-Konfigurationsdatei in ~/.ssh/config hinzuzufügen. Zum Beispiel für meine Arbeit Heroku Konto, das ich in meinem ssh config:

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

Jetzt, und das ist entscheidend, müssen Sie sicherstellen, dass Ihre git remote eingerichtet ist selben Namen Host verwenden . In diesem Fall ist es heroku.work. Normalerweise wäre es heroku.com, wenn Sie Heroku nur mit einem einzigen Account verwenden würden.

Sie müssen also die Git-Fernbedienung bearbeiten (Sie können dies in der .git/config Datei Ihres Repo auf Ihrem Computer tun).Ändern Sie die Datei so, dass sie wie folgt aussieht:

[remote "heroku"] 
    url = [email protected]:<appname>.git 

Beachten Sie die Heroku. Arbeit, nicht heroku. com, und ersetzen <appname> mit dem Namen Ihrer App (aka Ihr Repo-Name) auf Heroku.

+4

ja! Editieren .git/config hat den Trick für mich gemacht – rodowi

+1

Thx, das war was ich brauchte, als ich meine prod App von herokus Dashboard erstellte. – Bachet

+1

[email protected] ... existiert jedoch nicht als Endpunkt.Wie mache ich das an den Endpunkt zu schieben? - Ah, du brauchst das Heroku-Konto-Plugin. – jmstone617

6

Ich würde ein paar Dinge für die heroku-accounts plugin hinzufügen ... dieses Beispiel geht davon aus, dass Ihr bereits existierendes Heroku-Konto heroku.work ist und Sie ein neues Konto heroku.personal hinzufügen.

Es wird auch beschrieben, wie Sie eine App von einer auf die andere verschieben können, zum Beispiel wenn Sie Ihre maximale 25 App erreicht haben und ein neues Konto erstellen und einige Ihrer Nebenprojekte und experimentellen Apps verschieben möchten Ihr Hauptkonto.

  1. Sie müssen wahrscheinlich das Plugin verwenden, um zu erstellen sowohl Ihre alte und Ihre neue Konten, zum Beispiel, wenn Sie einen mit Ihnen zu beginnen hatte nicht nur einen neuen heroku.personal hinzufügen, müssen Sie Heroku erstellen. arbeiten ersetzen Ihre alte
  2. Sie werden Ihre alten Anwendungen auf Ihre heroku.work
  3. neu zuweisen müssen, wenn Sie bewegen eine App sind, die App nicht zuweisen heroku.personal (mit heroku accounts:set personal) bis nach übertragen Sie die App mit dem Heroku sharing Befehl wie beschrieben https://devcenter.heroku.com/articles/transferring-apps

So sind die Schritte, die Sie wahrscheinlich benötigen, sind:

  1. Installieren Sie das Heroku-Konto Plugin
  2. Zum heroku.com und Ihrem neuen acount erstellen (wenn Sie ein zweites acount nicht haben bereits)
  3. Führen Sie heroku accounts:add work --auto aus, um ein neues heroku.work-Konto zu erstellen, das Ihr altes Standardkonto ersetzt (verwenden Sie also die gleichen Anmeldedaten, die Sie schon immer verwendet haben). Sie müssen auch Ihren neuen Schlüssel zu Heroku hochladen:
  4. run heroku accounts:add personal --auto ausführen, um ein neues Konto heroku.personal zu erstellen (z. B. verwenden Sie 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. Für jede App, CD in den Projekt-Stamm, dann heroku accounts:set work ausführen (alles, was tut Setup git Ihr heroku.work zu verwenden, das ist (nicht dieses Beispiel) das gleiche Heroku-Konto, das Sie die ganze Zeit verwendet haben, nur jetzt heißt es 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 ein Mitarbeiter mit heroku sharing:add <new owner email> (b) in Ihrem 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 <new owner email> dann (d) entfernen Sie die alte E-Mail-Adresse Kollaborateur (wenn Sie wollen) unter Verwendung von heroku sharing:remove <old owner email>

** Beachten Sie, dass der Heroku-Link, den ich zur Verfügung gestellt habe, besondere Anforderungen enthält, um eine App mit bezahlten Ressourcen zu verschieben. Im Allgemeinen entfernen Sie die bezahlten Ressourcen, fügen Sie sie später wieder hinzu oder lassen Sie sich unterstützen.

2

Ich begann mit dem Heroku-Konto-Plugin, aber dann erkannte ich, dass mein Kumpel mich zu einem Mitarbeiter auf seinem Heroku-Konto machen konnte und das war alles, was benötigt wurde.

+0

upvote diese, vor allem, wenn Sie das Passwort für beide Konten haben – portforwardpodcast

0

ich bin mit win7

1) ein anderes Benutzerkonto in win7 erstellen und melden Sie sich es

2) offen git bash und melden Sie sich in Ihrem neuen Heroku Konto

3) Neuen RSA-Schlüssel erstellen und hochladen (Anleitung hier: https://devcenter.heroku.com/articles/keys)

4) dann tun, was immer Sie wollen (neue App erstellen, Push-Datei, um es .....)

5) jedes Mal, wenn Sie brauchen nur mit Ihrem ursprünglichen Heroku Konto arbeiten in Ihren ursprünglichen Sieg einloggen Benutzerkonto und Arbeit mit Heroku

+0

Ich würde dies nicht empfehlen - lokale PC-Konten zu wechseln ist Overkill, wenn es bessere Lösungen unten gibt. –

+0

das ist sowieso eine Option – mehdok

1

Um dies für mich mit Git und der Heroku-Konsole zu arbeiten, musste ich hinzufügen, erstellen Sie die SSH-Konfiguration wie von Bantic angewiesen, aber ich musste auch zwei Fernbedienungen zu meinem .git erstellen config:

[remote "origin"] 
    url = [email protected]:pacific-rock-4904.git 
    fetch = +refs/heads/*:refs/remotes/heroku/* 
[remote "heroku"] 
    url = [email protected]:pacific-rock-4904.git 
    fetch = +refs/heads/*:refs/remotes/heroku/* 
+0

Und dann zu was? Heroku oder Herkunft? – jmstone617

0

erstellen Sie neuen öffentlichen/privaten Schlüssel für neue E-Mail als fo llows

1) SSH-keygen -t RSA- -C "[email protected]"

2) liefern neue Dateinamen, in dem den Schlüssel zu speichern (/home/.ssh/seckey)

3) Dann werden Ihren neuen Schlüssel zum ssh-agenten hinzufügen: - ssh-add ~/.ssh/seckey

4) Dann wird Ihren neuen Schlüssel zu Heroku hinzufügen: - Heroku Schlüssel: in ~/.ssh/seckey

5) fügen Sie SSH Config File als ~/.ssh/config und Inhalt wie folgt hinzu

Host-heroku.com Hostname heroku.com Hafen 22 IdentitiesOnly ja Identity ~/.ssh/seckey Benutzer [email protected]

Moderator heroku.com Hostname heroku.com Port 22 IdentitiesOnly ja Identity ~/.ssh/id_rsa Benutzer [email protected]

6) klonen den Code entweder

a) git klon [email protected]: your-application.git b) heroku git: klon -a your-application

1

Das nervt mich schon eine Weile, und ich habe nie eine Lösung gefunden, die mir gefallen hat . Endlich gefunden.

(OS X spezifische Antwort.)

Sie können nur neue Benutzer erstellen. Gehen Sie zu Systemeinstellungen -> Benutzer & Gruppen -> Benutzer oder Gruppe hinzufügen Schaltfläche. Sie können ein paar Benutzer für verschiedene Heroku-Konten erstellen, ich habe gerade meine Benutzer1, Benutzer2 usw. benannt.

Dann gehen Sie zu den Systemeinstellungen -> Sharing -> Remote-Anmeldung -> Zugriff erlauben für: Alle Benutzer

An dieser Stelle können Sie zu einem Terminal gehen und wie folgt vorgehen:

$ ssh [email protected] 

dann können Sie Dinge tun, wie folgt:

$ heroku login 
$ heroku keys:add 
+0

Dies scheint perfekt, aber ist es möglich, verschiedene ssh Benutzer Zugriff auf die gleichen Ordner und Dateien zu geben? – Numbers

4

Das Heroku Plugin https://github.com/ddollar/heroku-accounts ist veraltet. Heroku unterhält jetzt eine eigene https://github.com/heroku/heroku-accounts. Leider scheint es nicht Projekt-by-Projekt zu speichern, die es ausmachen sollten Sie

$ heroku accounts:set account_name 

jedes Mal, wenn Sie das Heroku Kommandozeilen-Tool verwenden, ausgeführt werden sollen, so müssen werden.

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

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

("project_name" gegebenenfalls ersetzen) Dann

$ chmod + x ist run/Heroku

Sie dann

$ sind laufen können/Heroku läuft Konsole

und es wird automatisch das richtige Heroku-Konto für Sie verwenden. Besser ist noch ./bin auf Ihrem Weg hinzufügen, damit Sie zurück zu gerade laufen sind:

$ Heroku run Konsole

0

I verwendet nano .git/config dann Wert der URL von remote „Heroku“ ersetzt mit heroku.com> apps> einstellungen> Reveal config vars> Heroku Git URL

Verwandte Themen