Ich habe viele Stunden lang nach einer Lösung für mein scheinbar einfach zu behebendes Problem gesucht. Es ist nicht so, dass meine Suche nichts ergab, es ist so, dass meine Suche so viele verschiedene Lösungen ergab - von denen keine funktioniert hat.
Wie auch immer, ich kann einfach nicht von meinem Mac aus mein Heroku-Repository verschieben, ziehen oder abrufen. Jeder Versuch gibt mir (als würde er mich verspotten) den folgenden Fehler:
'Erlaubnis verweigert (publickey). fatal: Konnte nicht aus dem Remote-Repository lesen. '
Ich habe versucht (und erneut versucht), es auf viele verschiedene Arten zu beheben. Wie gesagt, ich habe einen guten Teil der letzten zwei Tage damit verbracht, nach einer Antwort zu suchen. Hier sind einige der Dinge, die ich versucht habe:
- Heroku-Tasten: Löschen, gefolgt von Heroku-Tasten: Hinzufügen
- Einen SSH-Schlüssel selbst mit 'ssh-keygen -t rsa' neu generieren
- Löschen meines .ssh-Verzeichnisses, gefolgt von Heroku-Schlüsseln: Löschen, gefolgt vom Generieren eines SSH-Schlüssels
- Meine App auf Heroku löschen und eine neu erstellen (zum Glück war dort nicht viel los)
Ich kann problemlos aus meinem GitHub-Repository abrufen, daher weiß ich, dass es sich nicht um eine Netzwerkverbindung handelt (Ping Heroku funktioniert auch).
Als provisorische Lösung (von der ich hoffe, dass sie nicht zu einer dauerhaften wird) habe ich mich bei meiner Ubuntu Amazon AWS ec2-Instanz angemeldet. Das Ziehen und Schieben zu und von Heroku funktioniert perfekt. Aus diesem Grund habe ich immer noch das Gefühl, dass das Problem bei der SSH-Taste auf meinem Mac liegt. Beide Schlüssel werden unter meinem Heroku-Konto angezeigt. Ist die E-Mail-Adresse am Ende des Schlüssels wichtig?
EDIT: Ich kann gut von GitHub schieben und ziehen (ich benutze jedoch nicht ssh), also warum nicht Heroku?
An diesem Punkt bin ich bereit, alles zu versuchen. Vielen Dank!
quelle
Antworten:
Ich weiß, dass dies bereits beantwortet wurde. Aber ich möchte meine Lösung hinzufügen, da sie in Zukunft für andere hilfreich sein kann.
Ein häufiger Schlüsselfehler ist :
Permission denied (publickey)
. Sie können dies beheben, indem Siekeys:add
Heroku über Ihren neuen Schlüssel benachrichtigen.Befolgen Sie kurz diese Schritte: https://devcenter.heroku.com/articles/keys
Zuerst müssen Sie einen Schlüssel erstellen, wenn Sie keinen haben:
Zweitens müssen Sie den Schlüssel zu Heroku hinzufügen:
quelle
heroku keys:add
hilft Ihnen beim Erstellen eines Schlüssels, wenn Sie keinen Schlüssel haben.ssh-keygen -t rsa
wenn dasRSA
nicht generiert wird, sonstheroku keys:add
sollte ausreichenIch dachte nur, ich würde teilen, dass ich die Antwort auf meine eigene Frage gefunden habe.
Das Aufschreiben meines Problems machte es mir noch klarer und ich untersuchte weiter, wo mein Problem lag: der SSH-Schlüssel
Es stellte sich heraus, dass ich recht hatte. Das Problem war nicht der Schlüssel selbst, sondern dass ich ihn nicht zur Liste der bekannten SSH-Schlüssel meines lokalen Mac hinzugefügt hatte. Obwohl auf meinem Heroku-Konto der richtige Schlüssel hochgeladen wurde, konnte sich mein Mac nicht damit authentifizieren, da er diesen Schlüssel auf meinem Computer nicht finden konnte. Die Lösung?
Ich möchte https://help.github.com/articles/error-permission-denied-publickey als gute Referenz würdigen.
quelle
Git Bash
(Rechtsklick auf einen Ordner) und einen starten,ssh-agent
der durch Ausführen möglich ist`ssh-agent`
(beachten Sie die Back-Ticks) und dann den Schlüssel wie oben beschrieben hinzufügen. Ich muss dies jedes Mal tun, wenn ich dasGit Bash
/ssh-agent
starte, es vergisst, was hinzugefügt wurde.Ich hatte genau den gleichen Fehler (unter Windows 7) und die Ursache war unterschiedlich. Ich habe es auf eine andere Weise gelöst, also dachte ich, ich würde hier die Ursache und Lösung für andere hinzufügen.
Obwohl der Fehler auf Heroku zu verweisen schien, sagte der Fehler wirklich
"Heroku can't get to the git repository"
. Ich habe geschworen, auf allen Servern die gleichen Schlüssel zu haben, weil ich sie erstellt und gleichzeitig nacheinander hochgeladen habe.Nachdem ich fast einen Tag damit verbracht hatte, wurde mir klar, dass git mir nur den Fingerabdruck und nicht den eigentlichen Schlüssel zeigte. Ich konnte nicht überprüfen, ob der Schlüssel mit dem auf meiner Festplatte oder meinem Heroku übereinstimmt. Ich habe in der bekannten Hosts-Datei nachgesehen und erraten, was ... sie zeigt die Schlüssel für jeden Server und ich konnte deutlich sehen, dass die öffentlichen Schlüssel von git und heroku nicht übereinstimmten.
1) Ich habe alle Dateien in meinem Schlüsselordner gelöscht, den Schlüssel von github über die Website und den Schlüssel von heroku mit git bash und dem Befehl
heroku keys:clear
2) Befolgen Sie die Anweisungen von github hier , um ein neues Schlüsselpaar zu generieren und den öffentlichen Schlüssel auf git hochzuladen
3) Verwenden Sie
git bash-
heroku keys:add
, um denselben Schlüssel auf Heroku hochzuladen.Funktioniert jetzt
git push heroku master
.Was für ein Albtraum, hoffe das hat jemandem geholfen.
Bryan
quelle
Das Problem war, dass ich nur https für mein GitHub-Konto verwendete. Ich musste sicherstellen, dass mein GitHub-Konto für den SSH-Zugriff eingerichtet war und dass GitHub und Heroku beide dieselben öffentlichen Schlüssel verwendeten. Dies sind die Schritte, die ich unternommen habe:
Navigieren Sie zum Verzeichnis ~ / .ssh und löschen Sie die Dateien id_rsa und id_rsa.pub, falls vorhanden. Ich habe mit neuen Schlüsseln begonnen, obwohl dies möglicherweise nicht erforderlich ist.
Melden Sie sich bei heroku an, erstellen Sie eine neue Site und fügen Sie Ihre öffentlichen Schlüssel hinzu:
quelle
Ich hatte den gleichen Fall unter Linux Ubuntu und habe ihn gerade behoben. Es scheint, dass das Betriebssystem zwischen /root/.ssh/ und home / user / .ssh / dir verwechselt wurde. Was ich getan habe, war:
heroku keys
heroku keys:clear
heroku keys:add
Wenn Heroku hier keinen Schlüssel finden konnte und darum gebeten wurde, ein richtiges Nein zu generieren. Dies bedeutet, dass Sie das gleiche Problem wie ich haben. Führen Sie den Befehl add wieheroku keys:add /root/.ssh/id_rsa.pub
folgt aus. Der Pfad, den Sie hinzufügen, ist derjenige, den Sie erhalten haben in Schritt 2.git push heroku master
jetztquelle
Mein Weg unter Windows 8
Fügen Sie der System-PATH-Variablen ein Verzeichnis mit ssh-keygen hinzu, normalerweise C: \ Programme (x86) \ Git \ bin
Öffnen Sie CMD und gehen Sie zu C: \ Users \ Me \
SSH-Schlüssel generieren
ssh-keygen -t rsa
Geben Sie die Datei ein, in der der Schlüssel gespeichert werden soll (//.ssh/id_rsa): .ssh / id_rsa (ändern Sie einen falschen Standardpfad in .ssh / somegoodname_rsa)
Füge den Schlüssel zu Heroku hinzu
heroku keys:add
Wählen Sie einen erstellten Schlüssel aus einer Liste aus
Gehen Sie in Ihr App-Verzeichnis und schreiben Sie einen schönen Code
Initiiere ein Git Repo
git init
git add .
git commit -m 'chore(release): v0.0.1
Heroku-Anwendung erstellen
heroku create
Stellen Sie Ihre App bereit
git push heroku master
Öffnen Sie Ihre App
heroku open
quelle
Hatte ein ähnliches Problem und versuchte viele Dinge. Letztendlich funktionierte es für mich, Gnu unter Windows zu installieren ( https://github.com/bmatzelle/gow/releases ) und sicherzustellen, dass das ssh-Tool in diesem Verzeichnis verwendet wurde und nicht das mit Git. Nach der Installation testen Sie mit (stellen Sie sicher, dass in Ihrer Umgebung PATH vor Git \ bin steht)
Ich habe Kitt und Festzug wie hier beschrieben verwendet: http://rubyonrailswin.wordpress.com/2010/03/08/getting-git-to-work-on-heroku-on-windows-using-putty-plink-pageant/
Nachdem die Schlüssel an heroku gesendet wurden (heroku-Schlüssel: c: \ Users \ Person.ssh \ id_rsa.pub hinzufügen), verwenden Sie
und stellen Sie sicher, dass auf Ihrem Stapel Putty verwendet wird - dh ein funktionierender Stapel:
Eine, die zuvor ausgeführt wurde und fehlgeschlagen ist:
quelle
Sie müssen einen neuen SSH-Schlüssel erstellen, indem Sie Folgendes eingeben: ssh-keygen -t rsa
Dann müssen Sie hinzufügen: - Heroku-Schlüssel: hinzufügen
Dann, wenn Sie tippen - Heroku offen
Das Problem ist gelöst worden.
Es hat sowieso bei mir funktioniert, du könntest es versuchen ...
quelle
Ich habe den gleichen Fehler erhalten und weil ich 4 SSH-Schlüssel habe, habe ich versucht zu folgen:
dann zeigen vier Optionen:
Ich wähle 3), die neueste
Dann behebe ich den Fehler.
quelle
Ich benutze diese Methode, um dieses Problem zu lösen. Vielleicht können Sie es versuchen
"SSH-Agent aktivieren"
http://git-scm.com/
Es installieren
Aktivieren Sie ssh-agent
C: \ Programme \ Git \ cmd
start-ssh-agent
Die Nachricht verschwindet, nachdem ich den Agenten aktiviert habe. Ich hoffe, dies wird Ihnen helfen
quelle
Ich möchte eine weitere Lösung hinzufügen, da ich sie hier nicht gesehen habe. Mein Problem war, dass Heroku auf die falsche URL verlinkt (da ich immer wieder mit URL-Namen herumgespielt habe). Das Bearbeiten der Remote-URL hat mein Problem gelöst:
quelle
Ich hatte das gleiche Problem. Und ich habe versucht, meine Schlüssel zurückzusetzen, wie alle sagten, aber es hat immer noch nicht funktioniert. Denn ich habe die App umbenannt.
Also habe ich meine Schlüssel zurückgesetzt und die App von der Konsole aus umbenannt. Überprüfen Sie diese Frage für weitere Informationen: Heroku Push App Problem
quelle
SO So So einfache Lösung, gehen Sie zu c: /Users/user_name/.ssh/ und löschen Sie alle Pub / Private-Schlüsselpaare. Auf diese Weise generiert Heroku Schlüssel für Sie.
quelle
Ich hatte einen ähnlichen Heroku-SSH-Fehler, den ich nicht beheben konnte.
Als Problemumgehung habe ich die neue http-git-Funktion von heroku verwendet (http-Transport für "heroku" -Fernbedienung anstelle von ssh). Details hier: https://devcenter.heroku.com/articles/http-git
(Kurzversion: Wenn Sie ein Projekt bereits auf die Standardmethode eingerichtet haben, führen Sie heroku git: remote --http-init aus, um "heroku" remote in http zu ändern.)
Eine gute schnelle Lösung, wenn Sie keine Zeit haben, ein SSH-Problem zu beheben oder zu beheben.
quelle