Berechtigung verweigert (publickey) beim Bereitstellen von Heroku-Code. tödlich: Das entfernte Ende legte unerwartet auf


849

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.


Hat die Lösung von sebarmeli für Sie funktioniert? Ich verwende keinen rsa-Schlüssel mit dem Namen "id_rsa.pub" und habe gerade "heroku keys: add ~ / .ssh / <rsa_key_filename> .pub" eingegeben
Michael Merchant

6
Ich hatte dieses Problem vor fast einem Jahr und die damals vorgeschlagene Lösung funktionierte nicht genau für mich, aber ich habe es irgendwie herausgefunden (an diesem Punkt erinnere ich mich nicht genau, was ich getan habe). Sebarmeli antwortete eine Weile, nachdem ich keine Hilfe mehr brauchte, obwohl seine Antwort anscheinend bei denen sehr beliebt ist, die ein ähnliches Problem hatten. Wenn es die Menschen glücklich macht, werde ich seine Antwort als die richtige wählen.
Vich

3
Die folgende Zeile hat das Problem für mich gelöst. Heroku-Konten: Legen Sie Ihr Konto fest
Mingming

Anscheinend sind einige Heroku-Dienste heute nicht verfügbar. Überprüfen Sie die Website auf Probleme, wenn Sie dies debuggen.
Philip Guin

Ich hatte das gleiche Problem. Ich musste nur noch eine heroku loginE-Mail und ein Passwort schreiben und es erneut versuchen.
Alejandro Veintimilla

Antworten:


1474

Sie müssen Ihren öffentlichen Schlüssel auf Heroku hochladen:

heroku keys:add ~/.ssh/id_rsa.pub

Wenn Sie keinen öffentlichen Schlüssel haben, werden Sie von Heroku aufgefordert, automatisch einen hinzuzufügen, der nahtlos funktioniert. Benutz einfach:

heroku keys:add

So löschen Sie alle vorherigen Schlüssel:

heroku keys:clear

So zeigen Sie alle vorhandenen Schlüssel an:

heroku keys

BEARBEITEN:

Das obige schien für mich nicht zu funktionieren. Ich hatte mit der HOMEUmgebungsvariablen 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:

ssh -vT git@heroku.com

Daraufhin werden die folgenden (Beispiel-) Zeilen angezeigt

OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007
debug1: Connecting to heroku.com [50.19.85.156] port 22.
debug1: Connection established.
debug1: identity file /c/Wrong/Directory/.ssh/identity type -1
debug1: identity file /c/Wrong/Directory/.ssh/id_rsa type -1
debug1: identity file /c/Wrong/Directory/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version Twisted
debug1: no match: Twisted
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_4.6
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-cbc hmac-md5 none
debug1: kex: client->server aes128-cbc hmac-md5 none
debug1: sending SSH2_MSG_KEXDH_INIT
debug1: expecting SSH2_MSG_KEXDH_REPLY
debug1: Host 'heroku.com' is known and matches the RSA host key.
debug1: Found key in /c/Wrong/Directory/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /c/Wrong/Directory/.ssh/identity
debug1: Trying private key: /c/Wrong/Directory/.ssh/id_rsa
debug1: Trying private key: /c/Wrong/Directory/.ssh/id_dsa
debug1: No more authentication methods to try.

Permission denied (publickey).

Aus dem /c/Wrong/Directory/.sshObigen 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 (mit heroku keys:add ~/.ssh/id_rsa.pub) ( Bitte beachten Sie, dass sich Windows unter Windows ~auf den HOMEPfad bezieht, der in WinC:\Users\UserName 7/8 enthalten ist ist )

Um Ihr aktuelles Home-Verzeichnis anzuzeigen, gehen Sie wie folgt vor: echo $HOMEoder echo %HOME%(Windows)

Um Ihr HOMEVerzeichnis richtig einzustellen (mit richtig meine ich das übergeordnete Verzeichnis des .sshVerzeichnisses, damit ssh nach Schlüsseln im richtigen Verzeichnis suchen kann), verweisen Sie auf diese Links:

  1. SO Antwort zum dauerhaften Festlegen der Unix-Umgebungsvariablen

  2. SO Frage bezüglich ssh auf der Suche nach Schlüsseln im falschen Verzeichnis und einer Lösung dafür.


31
Hat bei mir nicht funktioniert. Ich musste meinen alten Schlüssel widerrufen und dann die Heroku-App generieren und einen neuen für mich hochladen lassen. Siehe den von Lithium bereitgestellten Link dazu.
Borisdiakur

9
Nur eine Nachricht an die Leute, dass es nicht funktioniert hat. Sie müssen sicherstellen, dass Sie bereits einen öffentlichen SSH-Schlüssel erstellt haben. help.github.com/mac-set-up-git für weitere Informationen dazu mit Mac.
Ryan

92
Wenn Sie keinen öffentlichen Schlüssel haben, werden Sie von Heroku aufgefordert, automatisch einen hinzuzufügen, der nahtlos funktioniert. Verwenden Sie einfach:heroku keys:add
Vansan

13
Versuchen Sie auch, ssh-keygen -t rsa -C "your_email@youremail.com"wenn immer noch der Fehler auftritt, eine andere Datei.pub zu erstellen und diese im empfohlenen Befehl in dieser Antwort zu verwenden
Tom Roggero

3
Möglicherweise müssen Sie einen Schlüssel erstellen / neu erstellen, bevor Sie ihn zu Heroku hinzufügen. whatibroke.com/?p=284 hat für mich für Windows 7 gearbeitet.
Khalid Saifullah

146

Ich hatte das gleiche Problem, die folgenden Schritte funktionierten für mich,

->heroku login

abc@gmail.com & Passwort

->cd C:\Users\yourusername\.ssh    (OR for cygwin shell ->cd ~/.ssh)

->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

$ ssh-add

und es zu Heroku

->heroku keys:add "id_rsa.pub"

Verzeichnis in Arbeitsbereich ändern, dann

->git clone git@heroku.com:stark-dawn-1234.git -o heroku

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


21
Das hat es für mich gelöst. Ich denke, der Grund war, dass ich eine 'github_rsa'-Datei von hatte Github for Windows, aber keine id_rsa-Datei.
Msiemens

Funktionierte nicht mit dem Openssl-Installationsprogramm. Ich musste CopSSH installieren, um das Programm ssh-keygen.exe zu erhalten.
Djangofan

Unter Windows 7 musste ich dies an der git bashEingabeaufforderung tun , um ssh-keygen auszuführen. Vielen Dank.
Rots

Dies hat bei mir funktioniert und scheint die beste Lösung zu sein. Die bessere Frage ist, warum ich das jeden zweiten Tag wiederholen muss
Paul Renton

3
Das hat bei mir funktioniert. Wenn Sie Git Bash unter Windows verwenden, MUSS der Schlüssel id_rsa.pub heißen, sonst funktioniert er nicht, selbst wenn Sie etwas anderes auf Heroku hochladen.
Kiv

90

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.

$ heroku keys
=== 1 key for joe@example.com
ssh-dss AAAAB8NzaC...DVj3R4Ww== joe@workstation.local

2) Erstellen Sie eine ~ / .ssh / config-Datei:

$ sudo vim ~/.ssh/config

Bearbeiten Sie mit diesen Informationen

Host heroku.com
Hostname heroku.com 
Port 22 
IdentitiesOnly yes 
IdentityFile ~/.ssh/ssh-dss # location and name of your private key
TCPKeepAlive yes 
User joe@workstation.local

3
Das hat auch bei mir funktioniert, nachdem nichts anderes getan hat! Es sollte jedoch vorher Userin dieser letzten Zeile einen Zeilenumbruch geben. Außerdem hat es sich über den #Kommentar beschwert , also habe ich ihn einfach entfernt.
Erik J

2
Stellen Sie sicher, dass die "IdentityFile" die nicht öffentliche Datei (wie oben) enthält, nicht die öffentliche. Aus irgendeinem Grund hatte meine die öffentliche Version und es wurde ein Fehler ausgegeben, der besagte, dass die Berechtigungen für die Datei falsch waren.
Kevin K

Das Hinzufügen dieser hostInformationen 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 versuchte git push. Ich musste chmod 600 heroku.pubund dann, als ich drückte, funktionierte es.
Dylan Valade

1
IdentityFile ~/.ssh/ssh-dssist der Pfad zum privaten Schlüssel. Sie möchten hier Ihren privaten Schlüssel eingeben , nicht Ihren öffentlichen Schlüssel.
HairOfTheDog

1
Diese Antwort hat mich übertrieben. Ich verwende Windows 7 64-Bit. Es gibt eine Reihe weiterer Schritte, die geholfen haben: ssh-keygen -t rsa -f id_rsa Löschen Sie dann alle Heroku-Schlüssel und fügen Sie den gerade erstellten hinzu: Heroku-Schlüssel: Löschen Sie die Heroku-Schlüssel: Fügen Sie C: \ Benutzer \ Benutzername \ .ssh hinzu \ id_rsa.pub und dann leichtes Ändern der obigen Datei in IdentityFile C: /Users/windows_username/.ssh/id_rsa
Paul

61

Hier ist der Link, der erklärt, wie Sie Ihre SSH-Schlüssel verwalten: https://devcenter.heroku.com/articles/keys#adding-keys-to-heroku


2
Heroku hat mich nie dazu aufgefordert, einen hinzuzufügen. Also musste ich zuerst den ssh-keygen machen. Das hat geholfen. Vielen Dank!
Kal

Dieser hat für mich gearbeitet. Generierte einen neuen Schlüssel, überschrieb in meinem Fall den alten und wählte dann id_rsa.pub, um es mit Heroku zu verwenden. Danke
jfoutch

35

Ich hatte das gleiche Problem, weil ich keine öffentlichen Schlüssel hatte, also tat ich:

heroku keys:clear
heroku keys:add

Das wird einen öffentlichen Schlüssel generieren und dann funktioniert es gut


1
Immer noch den Fehler. Ich probiere verschiedene Dinge aus, löse sie und bekomme dann in der nächsten Woche das gleiche Problem ... Ich frage mich, warum Heroku so ist.
JGallardo

31

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\.sshnach zu kopieren C:\Program Files (x86)\Git\.ssh. Dort sucht dieser Git-Client nach den Schlüsseln, wenn er auf Heroku drückt.

Ich hoffe das hilft.


2
Für mich war es c: \ msysgit \ .ssh. Ich habe gerade eine Verzeichnisverbindung zum .ssh-Ordner in meinem persönlichen Ordner erstellt.
Colin Bowern

Gleiches Problem hier, aber warum weiß ich nicht. Jedes Mal, wenn ich Schlüssel hinzufügte, wurde angezeigt, dass die Schlüssel aus meinem Benutzerordner verwendet wurden, genau wie bei diesem Fix, aber es funktionierte.
Haris Krajina

12
TUN SIE DAS NICHT! Dies funktioniert, weil HOME leer ist und standardmäßig das aktuelle exe-Verzeichnis verwendet wird. Wenn es jemandem gelingt, sich als Gast anzumelden, kann er Ihren privaten Schlüssel erhalten. Setzen Sie HOME in den erweiterten Benutzereinstellungen auf% HOME_DRIVE %% HOMEPATH% (oder C: \ Users \ <Benutzername> unter Win7) und kopieren Sie dort das Verzeichnis .ssh.
Dmajkic

Weiter zu @dmajkic finden Sie unter Win7 diesen Git für Windows-Tipp zum Festlegen der %HOME%Umgebungsvariablen auf %USERPROFILE%.
Steve Eynon

29

Das war die Lösung für mich:

ssh-add ~/.ssh/my_heroku_key_rsa

1
Hier gilt das gleiche. Vielen Dank. Stellen Sie außerdem sicher, dass Ihrem privaten Schlüssel die entsprechenden Berechtigungen zugeordnet sind. chmod 600 ~/.ssh/heroku_rsa
Arnaud Brousseau

Danke - das war auch mein Problem und ich musste zuerst auch Arnauds Tipp folgen.
Mike Atlas

15

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.


3
Arbeitete für mich (Windows 7 64bit). Ich habe GitHub für Windows installiert und es nennt die Schlüssel GitHub_rsa. Gibt es eine Möglichkeit anzugeben, welcher Schlüssel Git verwenden soll?
SpongeBoy

11

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.

 heroku keys:remove //removes the existing key
 ssh-keygen -t rsa //generates a new key in ~/.ssh folder
 heroku keys:add    //uploads the new key, if no arguments r passed then the key generated                              
                    //in default directroy i.e., ~/.ssh/id_rsa is uploaded
 git push heroku

das sollte funktionieren.


Danke, das hat bei mir funktioniert. Obwohl ich Heroku-Schlüssel verwendet habe: Löschen statt Heroku-Schlüssel: Entfernen.
Peter de Ridder

1
Falsch,Must specify KEY to remove
JGallardo

7

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)


1
Ich habe mit dem Heroku-Support gesprochen und sie haben dies als vorübergehende Lösung vorgeschlagen. Es hat bei mir funktioniert, aber ich bin sicher, dass es nicht für jeden Fall die Antwort ist.
Sauce McBoss

3
Ich bin mir nicht sicher, warum diese Antwort eine Ablehnung verdient hat ... Sie hat das Problem für mich gelöst und schlägt eine Antwort auf das Problem vor.
Sauce McBoss

Ich hatte das gegenteilige Problem ... obwohl die Heroku-Entwicklerdokumente besagen, dass Sie einen DSA-Schlüssel (ssh-dss) verwenden können, wurde die Meldung "Berechtigung verweigert" immer wieder angezeigt, bis ich zu einem RSA-Schlüssel wechselte
brandonjp

arbeitete für mich. Das Umschalten zwischen dsa und rsa scheint zu funktionieren, wenn Sie Ihre Tasten nach dem Heroku-Erstellen und vor dem Git-Push ändern.
Pramod

und wie erstelle ich einen DSA-Schlüssel und füge ihn Heroku hinzu?
Coiso

6

Unter Windows 7,64 Bit funktionierte die obige Lösung (Onur Turhan's) für mich mit geringfügigen Änderungen wie unten

C:\Users\MyName > heroku login

Geben Sie E-Mail / Passwort ein

C:\Users\MyName >ssh-keygen -t rsa -f id_rsa

Dadurch wurden zwei Dateien (id_rsa und id_rsa.pub) in meinem Verzeichnis c: \ Users \ MyName (nicht im Verzeichnis .ssh) generiert.

heroku keys:add id_rsa.pub
git clone git@heroku.com:some-heiku-xxxx.git -o heroku

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.


5

Ein einziger Befehl funktioniert:

heroku keys:add

Es wird eine machen, wenn es nicht existiert.


Downvote, dies antwortet nicht im Zusammenhang mit dem Fehler. Ich entfernte vorhandene, erstellte neue und fügte die Schlüssel hinzu und bekam immer noch das Problem. Ihr Vorschlag von heroku keys:addist keine vollständige Antwort.
JGallardo

5

Ich hatte dieses Problem, als TortoiseGIT auf meinem Computer installiert wurde. Nach dem Ändern der Umgebungsvariablen GIT_SSHvon

"c:\Program Files\TortoiseGit\bin\TortoisePlink.exe"

zu

"c:\Program Files (x86)\Git\bin\ssh.exe"

und nach diesem Tutorial mit ssh-keygenund keys:addfunktioniert es!


Welches Tutorial hast du verfolgt?
Eckes

der hier oben von Onur Turhan
Zooli

Die Verwendung von ssh von Git IS ist eine sehr gute Lösung. Es wurde wirklich kompliziert, Plink / Festzug / Kitt hier zu verstehen ...
Stéphane

4

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.


3

Reihenfolge folgt

$ heroku login
$ ssh-keygen -t rsa
$ heroku keys:add

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.


Viele Leute hatten genau die gleiche Antwort. und funktioniert nicht wie angegeben.
JGallardo

2

Die oben angegebene Antwort funktioniert, aber ich habe herausgefunden, dass ich einige zusätzliche Schritte ausführen muss, bevor es funktioniert.

  1. Ich habe alle id_rsa * -Dateien entfernt und mithilfe dieses Handbuchs eine neue SSH generiert .
  2. Dann habe ich die Heroku-App zerstört. Die Datei ~ / .heroku / credentials wurde entfernt.
  3. Befehl 'heroku create' (und da die Anmeldeinformationsdatei entfernt wird, werden Sie zur Eingabe Ihrer E-Mail-Adresse / Ihres Kennworts aufgefordert.
  4. Geben Sie ENDLICH 'heroku keys: add' ein und die Standarddatei ~ / .ssh / id_rsa.pub wird hochgeladen.
  5. Es klappt! Nun ... YMMV, aber ich hoffe wirklich, dass dies eine Hilfe sein kann, da ich den ganzen Tag Mühe hatte, dies herauszufinden! Haha

2

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

Host heroku.com
Hostname heroku.com 
Port 22 
IdentitiesOnly yes 
IdentityFile ~/.ssh/ssh-dss
TCPKeepAlive yes 
User joe@workstation.local

Jetzt laufen Git Push Heroku Master und es sollte funktionieren.


Auch dies zu verbessern. Verbrachte 6 Stunden mit gestern und habe nicht das Gefühl, dass dies Wissen ist, das mir überhaupt wichtig ist. Ich kann über Powershell und Eingabeaufforderung auf Github drücken, aber für Heroku funktioniert nur Git Bash für mich. Jetzt funktioniert es jedes Mal. Ich mache auch eine Heroku-Anmeldung, bevor ich den Heroku-Meister drücke. Vielleicht nicht notwendig, aber im Moment ist es der Aberglaube, der mich dazu bringt, es zu tun. Was für ein Albtraum
JMDenver

1

Es hört sich so an, als ob Ihre ~/.ssh/authorized_keysDatei nicht richtig eingerichtet ist. Überprüfen Sie, dass:

  • Es ist auf dem richtigen Weg.
  • Die Berechtigungen der Datei sind 0600.
  • Die Berechtigungen von ~/.sshsind 0700.

Ich bin ziemlich neu in diesem Bereich, also tut mir leid, wenn das dumm klingt, aber meine öffentliche SSH-Schlüsseldatei besteht nur aus einer Reihe von Zeichen (Standardschlüssel-Gen) ohne weitere Informationen. Ich habe diese SSH-Datei erworben, als ich git auf meinem Computer eingerichtet habe. Ich nahm an, dass dies derselbe öffentliche SSH-Schlüssel sein würde, den ich zum Bereitstellen meines Heroku-Codes verwenden würde. Oder hat Heroku einen eigenen öffentlichen SSH-Schlüssel, den ich generieren muss?
Vich

1
Ja, Sie können Ihren öffentlichen SSH-Schlüssel für viele verschiedene Hosts wiederverwenden. Ich bin mir nicht sicher, wie Heroku genau funktioniert, aber ich kann sehen, dass meine Antwort in diesem Fall nicht wirklich zutrifft. Sie können überprüfen, ob Ihr Schlüssel von der Weboberfläche akzeptiert wurde. Wenn immer noch alles überprüft wird, wenden Sie sich an das Support-Team.
CDhowie

Danke für den Hinweis! Ich habe den Heroku-Support kontaktiert. Ich werde aktualisieren, sobald ich eine Antwort habe.
Vich

OK. Ich bin interessiert zu hören, was das Problem auch ist. :)
cdhowie

1
Das Problem bestand also darin, die öffentliche SSH-Schlüsseldatei zu benennen. Als ich die Datei ursprünglich erstellt hatte, habe ich sie auch umbenannt, was zu Problemen bei der Bereitstellung führte, da git keine ordnungsgemäße Verbindung herstellte und die Heroku-Bereitstellung daher ebenfalls fehlschlug. Um das Problem zu lösen, habe ich einen neuen öffentlichen SSH-Schlüssel generiert und diesen zu github hinzugefügt, bevor ich es erneut versuche. Es verbindet sich jetzt! Danke für Ihre Hilfe!
Vich

1

Ich musste es machen:

$ ssh-keygen -t rsa  
$ heroku keys:add  

Dann hat es geklappt:

$ git push heroku master  

1

Überprüfen Sie Ihre .ssh-Konfiguration auf Heroku. Wechseln Sie in den Ordner .ssh und öffnen Sie die Konfigurationsdatei

cd ~/.ssh
subl config

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:

IdentityFile "/Users/ircmullaney/.ssh/my_ssh"

nicht

IdentityFile "/Users/ircmullaney/.ssh/my_ssh.pub"

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:

Permissions 0644 for '/Users/ircmullaney/.ssh/my_ssh.pub' are too open.

1

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:

git remote -v

Dann entfernen Sie das Heroku, das falsch ist:

git remote rm heroku

Fügen Sie dann den neuen hinzu

git remote add heroku git@heroku.com:sitename.git

Sie können den Site-Namen von Ihrer Heroku-Einstellungsseite für Ihre App abrufen. Viel Glück!


1

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

  1. ging zum .ssh-Verzeichnis unter "Dokument und Einstellungen" und löschte die Git-Hub-Schlüssel
  2. Führen Sie den Befehl Heroku Keys aus: Hinzufügen

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 .

  1. Führen Sie den Befehl Heroku Keys erneut aus: Hinzufügen

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

  1. Verwenden Sie jetzt den Git Push Heroku Master

Mit den oben genannten Schritten konnte ich das Problem lösen und die Anwendung in der Cloud bereitstellen.


1

Ich hatte das gleiche Problem. Die folgenden Schritte sollten helfen:

  1. Melden Sie sich zuerst an: heroku login
  2. Alle Schlüssel löschen: Heroku-Schlüssel: Löschen
  3. Löschen Sie alle Dateien im lokalen Ordner (alle .pubDateien und know_host) in.ssh/ folder
  4. Melden Sie sich erneut an: Heroku-Anmeldung - Sie werden ohne Schlüssel dazu aufgefordert. Befolgen Sie daher die Anweisungen auf dem Bildschirm.

Funktioniert nicht, um das Problem zu beheben. Ich bin eingeloggt, habe erfolgreich Schlüssel hinzugefügt und Permission denied (publickey).
bekomme

Warum müssen wir alle Dateien im .ssh-Ordner löschen?
Starx

0

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:

    echo %HOMEPATH%

0

Wenn Sie "sudo" verwenden möchten, Beispiel:

sudo git clone git@heroku.com......... -o heroku

Sie sollten auch einen SSH-Schlüssel für Ihren Root-Benutzer generieren.

sudo su
cd /root/.ssh  
ssh-keygen -t rsa
....
heroku keys:add id_rsa.pub

und es wird funktionieren.

Wenn Sie keinen Root-Benutzer verwenden, generieren Sie stattdessen den SSH-Schlüssel in Ihrem Benutzerverzeichnis.

cd /home/user/.ssh

Entschuldigung, wenn meine Sätze durcheinander sind ...


0

Versuchen Sie, Berechtigungen im Festplatten-Dienstprogramm (Mac OS X) zu reparieren. Half mir


0

Stellen Sie zunächst sicher, dass versteckte Dateien auf Ihrem Mac sichtbar sind. Wenn nicht:

  • Terminal öffnen und eingeben defaults write com.apple.Finder AppleShowAllFiles TRUE
  • killall Finder

Nächste Schritte:

  • Ich werde Users/user_name/.ssh/alle Dateien entfernen.
  • Öffnen Sie den Terminaltyp ssh-keygen -t dsa
  • Dann 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.


0

Ich habe auch dieses Problem. Ich benutze Mac OSX. Die Art und Weise, wie ich das behoben habe, war, mich als Administrator anzumelden

sudo su

Passwort


0

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 \


0

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.