Ich versuche, meinen Code mit der folgenden Befehlszeile für Heroku bereitzustellen:
git push heroku master
aber erhalte den folgenden Fehler:
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
Ich habe meinen öffentlichen SSH-Schlüssel bereits hochgeladen, aber dieser Fehler tritt immer noch auf.
git
heroku
deployment
public-key
vich
quelle
quelle
heroku login
E-Mail und ein Passwort schreiben und es erneut versuchen.Antworten:
Sie müssen Ihren öffentlichen Schlüssel auf Heroku hochladen:
Wenn Sie keinen öffentlichen Schlüssel haben, werden Sie von Heroku aufgefordert, automatisch einen hinzuzufügen, der nahtlos funktioniert. Benutz einfach:
So löschen Sie alle vorherigen Schlüssel:
So zeigen Sie alle vorhandenen Schlüssel an:
BEARBEITEN:
Das obige schien für mich nicht zu funktionieren. Ich hatte mit der
HOME
Umgebungsvariablen herumgespielt und so suchte SSH nach Schlüsseln im falschen Verzeichnis.Um sicherzustellen, dass SSH im richtigen Verzeichnis nach dem Schlüssel sucht, gehen Sie wie folgt vor:
Daraufhin werden die folgenden (Beispiel-) Zeilen angezeigt
Permission denied (publickey).
Aus dem
/c/Wrong/Directory/.ssh
Obigen können Sie ersehen , dass ssh nach den Schlüsseln in dem Verzeichnis sucht, in dem wir nicht die öffentlichen Schlüssel haben, die wir gerade zu heroku hinzugefügt haben (mitheroku keys:add ~/.ssh/id_rsa.pub
) ( Bitte beachten Sie, dass sich Windows unter Windows~
auf denHOME
Pfad bezieht, der in WinC:\Users\UserName
7/8 enthalten ist ist )Um Ihr aktuelles Home-Verzeichnis anzuzeigen, gehen Sie wie folgt vor:
echo $HOME
oderecho %HOME%
(Windows)Um Ihr
HOME
Verzeichnis richtig einzustellen (mit richtig meine ich das übergeordnete Verzeichnis des.ssh
Verzeichnisses, damit ssh nach Schlüsseln im richtigen Verzeichnis suchen kann), verweisen Sie auf diese Links:SO Antwort zum dauerhaften Festlegen der Unix-Umgebungsvariablen
SO Frage bezüglich ssh auf der Suche nach Schlüsseln im falschen Verzeichnis und einer Lösung dafür.
quelle
heroku keys:add
ssh-keygen -t rsa -C "[email protected]"
wenn immer noch der Fehler auftritt, eine andere Datei.pub zu erstellen und diese im empfohlenen Befehl in dieser Antwort zu verwendenIch hatte das gleiche Problem, die folgenden Schritte funktionierten für mich,
[email protected] & Passwort
->ssh-keygen -t rsa -f id_rsa
Wenn Sie gefragt werden, ob eine Passphrase nicht leer ist, füllen Sie sie mit einer Passphrase aus, aber vergessen Sie sie nicht.
Nachdem Sie den Schlüssel generiert haben, müssen Sie ihn wie folgt hinzufügen
und es zu Heroku
Verzeichnis in Arbeitsbereich ändern, dann
Verwenden Sie die oben festgelegte Passphrase.
Eigentlich entferne ich auch Dateien unten, aber nicht sicher, ob sie imp sind,
C: \ Benutzer \ Ihr Benutzername.heroku \ credientals und C: \ Benutzer \ Ihr Benutzername.ssh \ bekannte_Hosts
quelle
Github for Windows
, aber keine id_rsa-Datei.git bash
Eingabeaufforderung tun , um ssh-keygen auszuführen. Vielen Dank.Dieses Problem hat mich ein paar Tage lang beschäftigt.
Dies könnte helfen.
1) Finde heraus, welche Schlüssel du jetzt in Heroku hast.
2) Erstellen Sie eine ~ / .ssh / config-Datei:
Bearbeiten Sie mit diesen Informationen
quelle
User
in dieser letzten Zeile einen Zeilenumbruch geben. Außerdem hat es sich über den#
Kommentar beschwert , also habe ich ihn einfach entfernt.host
Informationen zu meiner Konfigurationsdatei löste das Problem für mich. Ich habe einen Heroku-RSA-Schlüssel erstellt und die Standardberechtigungen für heroku.pub haben einen Fehler ausgelöst, als ich es versuchtegit push
. Ich musstechmod 600 heroku.pub
und dann, als ich drückte, funktionierte es.IdentityFile ~/.ssh/ssh-dss
ist der Pfad zum privaten Schlüssel. Sie möchten hier Ihren privaten Schlüssel eingeben , nicht Ihren öffentlichen Schlüssel.Hier ist der Link, der erklärt, wie Sie Ihre SSH-Schlüssel verwalten: https://devcenter.heroku.com/articles/keys#adding-keys-to-heroku
quelle
Ich hatte das gleiche Problem, weil ich keine öffentlichen Schlüssel hatte, also tat ich:
Das wird einen öffentlichen Schlüssel generieren und dann funktioniert es gut
quelle
Wenn Sie ein Windows-Benutzer sind, werden die anderen Lösungen hier Ihr Problem wahrscheinlich nicht lösen.
Ich verwende Windows 7 64-Bit + Git-1.7.7.1-Vorschau20111027 und die Lösung bestand darin, meine Schlüssel von
C:\users\user\.ssh
nach zu kopierenC:\Program Files (x86)\Git\.ssh
. Dort sucht dieser Git-Client nach den Schlüsseln, wenn er auf Heroku drückt.Ich hoffe das hilft.
quelle
%HOME%
Umgebungsvariablen auf%USERPROFILE%
.Das war die Lösung für mich:
quelle
chmod 600 ~/.ssh/heroku_rsa
Um meine Erfahrungen zu teilen:
Git (meine eigene Installation) suchte nach dem Schlüssel 'id_rsa'.
Also habe ich versucht , meine Schlüssel in 'id_rsa' und 'id_rsa.pub' umzubenennen und es hat funktioniert.
Übrigens, ich bin mir sicher, dass es einen anderen Weg gibt, aber ich habe noch nicht tiefer geschaut.
quelle
Wenn Sie den Schlüssel bereits hochgeladen haben, versuchen Sie, den Schlüssel zu entfernen und ihn dann mit einem neuen Schlüssel erneut hochzuladen.
das sollte funktionieren.
quelle
Must specify KEY to remove
Ich habe mich 3 Tage lang umgebracht und versucht, jede mögliche Kombination zum Laufen zu bringen. Schließlich habe ich versucht, stattdessen einen DSA- Schlüssel zu erstellen, und es hat funktioniert.
Versuchen Sie DSA anstelle von RSA, wenn es bei Ihnen nicht funktioniert.
(Ich benutze Ubuntu 11.10, Ruby 1.8.7, Heroku 2.15.1)
quelle
Unter Windows 7,64 Bit funktionierte die obige Lösung (Onur Turhan's) für mich mit geringfügigen Änderungen wie unten
Geben Sie E-Mail / Passwort ein
Dadurch wurden zwei Dateien (id_rsa und id_rsa.pub) in meinem Verzeichnis c: \ Users \ MyName (nicht im Verzeichnis .ssh) generiert.
Ich denke, das Hinzufügen der richtigen "id_rsa.pub" -Datei ist am wichtigsten. Nachdem Sie den öffentlichen Schlüssel mit keygen generiert haben, überprüfen Sie einfach, ob Sie den richtigen Schlüssel hinzufügen, indem Sie sich den Zeitstempel ansehen, als er erstellt wurde.
quelle
Ein einziger Befehl funktioniert:
Es wird eine machen, wenn es nicht existiert.
quelle
heroku keys:add
ist keine vollständige Antwort.Ich hatte dieses Problem, als TortoiseGIT auf meinem Computer installiert wurde. Nach dem Ändern der Umgebungsvariablen
GIT_SSH
vonzu
und nach diesem Tutorial mit
ssh-keygen
undkeys:add
funktioniert es!quelle
Das Schieben funktionierte für mich und hörte dann plötzlich auf.
Wenn die Heroku-API Ausfallzeiten aufweist, wird dieser Fehler angezeigt, wenn Sie versuchen, einen Push durchzuführen.
Prüfen:
https://status.heroku.com/
bevor sie zu hart ausflippen.
quelle
Reihenfolge folgt
Wenn Sie eine zweite Anweisung ausführen, werden Sie zur Eingabe aufgefordert. Drücken Sie einfach dreimal die Eingabetaste ( Eingabetaste ), und eine Taste wird hinzugefügt.
quelle
Die oben angegebene Antwort funktioniert, aber ich habe herausgefunden, dass ich einige zusätzliche Schritte ausführen muss, bevor es funktioniert.
quelle
Für alle, die alles oben Genannte unter Windows 7 ausprobiert haben und es trotzdem nicht funktioniert hat, habe ich Folgendes getan: - Öffnen Sie GitBash.exe aus dem Git-Verzeichnis C: \ Programme (x86) \ Git \ (don ' Wenn Sie keine Eingabeaufforderung öffnen, funktioniert dies nicht. - Fügen Sie Folgendes hinzu, wie oben erwähnt , aber Sie müssen das # löschen
Jetzt laufen Git Push Heroku Master und es sollte funktionieren.
quelle
Es hört sich so an, als ob Ihre
~/.ssh/authorized_keys
Datei nicht richtig eingerichtet ist. Überprüfen Sie, dass:~/.ssh
sind 0700.quelle
Ich musste es machen:
Dann hat es geklappt:
quelle
Überprüfen Sie Ihre .ssh-Konfiguration auf Heroku. Wechseln Sie in den Ordner .ssh und öffnen Sie die Konfigurationsdatei
Das 'subl' ist für Sublime Text, aber Sie können jeden gewünschten Editor verwenden. Suchen Sie nach der Zeile "IdentityFile" und stellen Sie sicher, dass der nicht öffentliche Schlüssel aufgeführt ist:
nicht
Das hat es für mich getan. Ich bin nicht sicher, warum meine die öffentliche Version in der Konfigurationsdatei hatte, aber es tat und es warf den Fehler:
quelle
Ich hatte immer noch Probleme, nachdem ich all diese Ideen ausprobiert hatte. Das war mein Problem:
Mein entferntes Heroku-Repository war funkig. Ich habe es wie folgt aktualisiert:
Dann entfernen Sie das Heroku, das falsch ist:
Fügen Sie dann den neuen hinzu
Sie können den Site-Namen von Ihrer Heroku-Einstellungsseite für Ihre App abrufen. Viel Glück!
quelle
Das Problem, mit dem ich konfrontiert war, war unter Windows und immer, wenn ich die "Heroku-Schlüssel: Hinzufügen" ausführte, wurden die Github-Schlüssel ausgewählt. Hier sind die Schritte, die ich ausgeführt habe, um das Problem zu beheben
Der obige Befehl hat mich gebeten, einen neuen Schlüssel zu generieren. Im Folgenden wurde die Ausgabe aufgeführt. Es konnte kein vorhandener öffentlicher Schlüssel gefunden werden. Möchten Sie eine generieren? [Yn] Y Generieren eines neuen öffentlichen SSH-Schlüssels. Hochladen des öffentlichen SSH-Schlüssels C: / Dokumente und Einstellungen / Admin / .ssh / id_rsa.pub ... fertig! Das 'Heroku'-Juwel wurde veraltet und durch den Heroku-Toolbelt ersetzt. Laden Sie es herunter und installieren Sie es von https://toolbelt.heroku.com .
Der obige Befehl gibt nicht die folgende Ausgabe Vorhandenen öffentlichen Schlüssel gefunden: C: / Dokumente und Einstellungen / Admin / .ssh / id_rsa.pub Hochladen des öffentlichen SSH-Schlüssels C: / Dokumente und Einstellungen / Admin / .ssh / id_rsa.pub .. . erledigt
Mit den oben genannten Schritten konnte ich das Problem lösen und die Anwendung in der Cloud bereitstellen.
quelle
Ich hatte das gleiche Problem. Die folgenden Schritte sollten helfen:
.pub
Dateien undknow_host
) in.ssh/ folder
quelle
Permission denied (publickey).
Ich möchte nur hinzufügen, dass das Verzeichnis nicht unbedingt C: \ Users \ [Benutzername] \. Ssh ist. Dies ist das Verzeichnis, in dem Sie Ihren öffentlichen Schlüssel erstellt haben.
Zum Beispiel wurde mein Home-Verzeichnis in Windows in C: \ [Benutzername] geändert. Ihr Home-Verzeichnis in einem .ssh-Unterordner ist der beste und wahrscheinlichste Ort, an dem Sie möglicherweise Ihre Schlüssel erstellt haben. Sie können Ihr Home-Verzeichnis in Windows mit dem folgenden Befehl überprüfen:
quelle
Wenn Sie "sudo" verwenden möchten, Beispiel:
Sie sollten auch einen SSH-Schlüssel für Ihren Root-Benutzer generieren.
und es wird funktionieren.
Wenn Sie keinen Root-Benutzer verwenden, generieren Sie stattdessen den SSH-Schlüssel in Ihrem Benutzerverzeichnis.
Entschuldigung, wenn meine Sätze durcheinander sind ...
quelle
Versuchen Sie, Berechtigungen im Festplatten-Dienstprogramm (Mac OS X) zu reparieren. Half mir
quelle
Stellen Sie zunächst sicher, dass versteckte Dateien auf Ihrem Mac sichtbar sind. Wenn nicht:
defaults write com.apple.Finder AppleShowAllFiles TRUE
killall Finder
Nächste Schritte:
Users/user_name/.ssh/
alle Dateien entfernen.ssh-keygen -t dsa
heroku keys:add ~/.ssh/id_dsa.pub
NB Ich habe es in Mac OSX 10.7.2 Lion gemacht. Das Verfahren sollte jedoch auch bei anderen gleich sein.
quelle
Ich habe auch dieses Problem. Ich benutze Mac OSX. Die Art und Weise, wie ich das behoben habe, war, mich als Administrator anzumelden
quelle
Lösung von dmajkic hilf mir endlich:
Für Windows-Benutzer kann dies bedeuten: Der Git-Client konnte Ihre Schlüssel nicht finden. Überprüfen Sie die Schlüssel in c: \ Users \ UserName.ssh \ und! Umgebungsvariable HOME = c: \ Users \ UserName \
quelle
Hier ist, was für mich funktioniert hat. Die Heroku-Site wird Ihren bekannten Hosts nicht hinzugefügt. Gehen Sie zu window-other-show view-git-git-Repositorys. Von dort klonen Sie das Repository. Löschen Sie nach dem Klonen das gerade erstellte Repository und importieren Sie es aus dem Dateimenü. Tun Sie dies, da das Repository beim Klonen nicht zur Explorer-Ansicht hinzugefügt wird. Jetzt sollten Sie das Git-Repository und die Explorer-Ansicht haben.
quelle