Ich bin neu bei Rails und habe versucht, eine sehr einfache App für Heroku bereitzustellen. Dies ist die zweite App, die ich bereitstelle, und die erste, die ich problemlos ausführen konnte. Ich habe jedoch einige Probleme mit diesem. Immer wenn ich " Heroku Master drücke ", erhalte ich diesen Fehler:
! Ihr Schlüssel mit Fingerabdruck xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx ist nicht berechtigt, auf my_heroku_app zuzugreifen.
tödlich: Das entfernte Ende legte unerwartet auf
Ich habe versucht, meine Schlüssel zu verwalten, nachdem ich mich bei Heroku angemeldet habe. Wenn ich in meiner Konsole " Heroku Keys " eingebe , bekomme ich:
Keine Schlüssel für meine E-Mail-Adresse.
Wenn ich jedoch den Befehl " Heroku-Schlüssel: Hinzufügen " ausführe, erhalte ich
Vorhandenen öffentlichen Schlüssel gefunden: /Users/michele/.ssh/id_rsa.pub Hochladen des öffentlichen ssh-Schlüssels /Users/michele/.ssh/id_rsa.pub! Fingerabdruck existiert bereits. Bitte verwenden Sie einen SSH-Schlüssel pro Heroku-Konto
Bitte hilf mir! Das ist so frustierend, ich habe keine Ahnung, was los ist! Danke dir
heroku logout
bei dem anderen Konto angemeldet und den Standard-RSA-Schlüssel von diesem Konto gelöscht. Danach konnte ich mit diesem neu generierten Schlüssel pushen.ssh-add ~/.ssh/id_rsa_heroku
obwohlssh-add ~/.ssh/identity.heroku.foo
ich auch https://github.com/ddollar/heroku-accounts (einen Manager für mehrere Konten für Heroku) verwende.Ich habe auch mehrere Schlüssel und mehrere Heroku-Konten, daher stoße ich alle paar Monate auf dieses Problem. Wie bereits erwähnt, ist Giordano Scalzo, Tom Carchrae und user664833 das Hauptproblem ssh-agent, das Sie mit dem
ssh-add
Befehl steuern . Die Manpage (man ssh-add
) ist eigentlich ziemlich klar und prägnant, also probieren Sie es aus.Sie können alle Schlüssel auflisten, die ssh-agent kennt:
Sie können alle Schlüssel löschen, die ssh-agent kennt mit:
Oder löschen Sie einen bestimmten Schlüssel mit
Mach dir keine Sorgen! Sie löschen die Schlüssel nicht wirklich, sondern ändern nur, welche ssh-agent automatisch zu verwenden versucht, beispielsweise wenn Sie versuchen, auf heroku zu drücken. Es ist einfach, Schlüssel nach Bedarf hinzuzufügen und zu löschen. Wenn ich von diesem Problem enttäuscht bin, ist es für mich am einfachsten, alle Schlüssel zu löschen und nur den Schlüssel wieder hinzuzufügen, den ich gerade verwenden möchte.
quelle
Ihr Computer verfügt über einen SSH-Schlüssel, dieser SSH-Schlüssel ist jedoch einem anderen Heroku-Konto zugeordnet.
Wenn Sie beide Konten für verschiedene Anwendungen auf demselben Computer verwenden müssen, sollten Sie einen neuen SSH-Schlüssel auf Ihrem Computer erstellen und auf Heroku hochladen:
Stellen Sie sicher, dass Sie es als '/Users/User/.ssh/new_id_rsa.pub' speichern, wenn Sie dazu aufgefordert werden.
Sie müssen dann einen alternativen Host für
heroku.com
Folgendes hinzufügen~/.ssh/config
:Aktualisieren
.git/config
Sie dann das in Ihrem Projekt, um den Host-Alias zu verwenden:Durch Auswahl zwischen
heroku
undheroku-alt
in der Ferne der.git/config
Dateien bestimmter Projekte können Sie verwalten, welche Projekte welche Anmeldeinformationen verwenden.quelle
Host heroku-alt not found: 3(NXDOMAIN)
. Ich stelle das in das Terminal von Mountain Lion.~/.ssh/config
existiert auch nicht, nur ein paar.pub
Dateien und eine aufgerufeneknown_hosts
. Und Ideen?Host
,HostName
und dieIdentityFile
Linien. Es sollte dann gut funktionieren.Hier ist eine sehr klare Erklärung, die in der Heroku-Dokumentation oder anderen Antworten auf die Frage fehlt. Zumindest scheinen nicht alle Informationen an einem Ort zu erscheinen. Außerdem können Sie das Problem so verstehen, wie es das Konten-Tool nicht tut.
Heroku identifiziert Sie auf zwei Arten:
Der erste ist in .git / config
Dies scheint es Ihnen zu ermöglichen, grundlegende Operationen mit auszuführen
heroku
Die zweite Art, wie Heroku Sie identifiziert, ist eine Operation, die ssh (git push) verwendet. Heroku identifiziert Sie anhand Ihres SSH-Schlüssels, wie hier angegeben: https://devcenter.heroku.com/articles/keys
Daher muss jedes Heroku-Konto, an dem Sie arbeiten, einen anderen Schlüssel an Heroku senden, wenn Sie ssh verwenden. Befolgen Sie ein beliebiges Tutorial, um Ihre SSH-Schlüssel zu erstellen.
Der Schlüssel ist, dass SSH für jedes Heroku-Konto unterschiedliche Schlüssel verwendet. Wie konfigurieren Sie das? Sie müssen zwei Dinge tun:
1) Sie müssen eine 'Dummy'-Domain erstellen, die Ihre .ssh / config abfängt und neu konfiguriert. Dadurch wird ssh mitgeteilt, welche 'tatsächliche' Domain Sie möchten und welchen speziellen ssh-Schlüssel Sie verwenden möchten.
2) Ändern Sie Ihre .git / config, um diese bei Verwendung von git push zu verwenden. Verwenden Sie anstelle von heroku.com die Dummy-Domain, die Sie in Ihrer .ssh / config festgelegt haben
Das war's :) Ein bisschen kompliziert und ein bisschen einfach zugleich. Ich habe 3 Jahre gebraucht, um meinen Kopf gegen die Wand zu schlagen und Versuch und Irrtum, um diese Informationen zu entdecken. Es sollte irgendwo klar dokumentiert sein, aber zumindest ist es ein Anfang.
quelle
Sie müssen neue Schlüssel erstellen und diese hinzufügen
Geben Sie nach dem Ausführen einen neuen Dateinamen an
dann (in meinem Fall)
quelle
Ich habe letzte Woche das gleiche Problem. Dieser Link hat mir geholfen. Ich hoffe es hilft dir ein wenig. http://devcenter.heroku.com/articles/keys
quelle
In meinem Fall hatte
heroku keys
bereits der richtige Schlüssel aufgeführt. Also musste ich nur rennenssh-add /path/to/that/key
und dann fing alles an gut zu funktionieren.quelle
Ich habe auch zwei Heorku-Konten und als Workaround habe ich mein Hauptkonto (das Konto, dessen Schlüssel automatisch von Heroku verwendet wird) als Mitarbeiter für mein Projekt "eingeladen".
quelle
Ich möchte nur nicht die Lösung für Windows-Benutzer hinzufügen.
Zuerst "Putty Key Generator" herunterladen
Erstellen Sie damit einen Schlüssel. OBS Sie müssen Ihre Maus über den leeren Bereich bewegen, um Zufälligkeit zu erzeugen.
Speichern Sie Ihre Schlüssel. Denken Sie daran, Ihren Schlüssel in [name] .pub umzubenennen
heroku keys:add
Im Terminal laufen !quelle
In meinem Fall war das Problem die von mir verwendete SSH-Version. Ich habe gerade die Umgebungsvariable GIT_SSH auf eine andere gesetzt ("GIT_SSH = / usr / bin / ssh") und alles hat für mich in Ordnung funktioniert.
quelle