wake-up-neo.com

git Push Heroku Master Erlaubnis verweigert

Ich folge dem Ruby.railstutorial. Ich führe den Befehl "git Push heroku master" aus und spuckt diesen Fehler aus.

Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

Ich bin in meiner Rails-App "/ Users/lexi87/Rails_projects/first_app". Irgendwelche Lösungen?

51

Um solche Fehler zu vermeiden, verwenden Sie ein öffentliches/privates Schlüsselpaar und keinen zusätzlichen Schlüssel für Heroku. Auf diese Weise können Sie (oder Ihr System) keinen falschen Schlüssel für die Anmeldung bei Heroku wählen.

Wenn Sie diesen Fehler erhalten, haben Sie etwas falsch gemacht. Überprüfen Sie diese Website: https://devcenter.heroku.com/articles/keys

Wenn Sie diese Fehlermeldung erhalten, entfernen Sie nicht benötigte Schlüssel und verwenden Sie nur einen.

Wenn Sie mehr als ein Schlüsselpaar in Ihrem System benötigen, können Sie einen Schlüssel für Heroku festlegen. Dies geschieht mit dem folgenden Befehl:

heroku keys:add
67
Fa11enAngel

Einige Hilfe für Windows 7-Benutzer mit installiertem Github Windows-Client:

Obwohl der Heroku-Toolbelt berichtet, dass er meinen öffentlichen git_hub-Schlüssel gefunden und hochgeladen hat, schlug "git Push heroku master" fehl. Nachdem Sie die folgenden Schritte ausgeführt haben, funktioniert es einwandfrei. 

  1. Erstellen Sie den .ssh-Ordner in Ihrem Benutzerordner, falls noch keiner vorhanden ist. Wennit dies tut, löschen Sie alle Dateien darin (dies setzt voraus, dass Sie mit ssh-Schlüsseln ganz von vorne beginnen können). 

  2. Klicken Sie im Windows Explorer mit der rechten Maustaste auf den Ordner . ssh und wählen Sie im Kontextmenü die Option Git-Bash aus. Diese wird zusammen mit der Github Windows-Clientsoftware installiert. 

  3. Geben Sie im Bash-Fenster ssh-keygen -t rsa -C "[email protected] ein. "Wenn Sie dazu aufgefordert werden, geben Sie eine -Passphrase ein (verlieren Sie diese nicht).

  4. Schließen Sie das Bash-Shell-Fenster.

  5. Geben Sie in einer cmd-Eingabeaufforderung im Stammverzeichnis des Projekts heroku keys:add ein. Hiermit wird der gerade erstellte Schlüssel aus Ihrer /.ssh-Datei nach Heroku gesucht und hochgeladen.

Jetzt können Sie git Push heroku master eingeben, um Ihre App auf Heroku zu verschieben. Hinweis: Wenn Sie fertig sind, müssen Sie Ihren neu generierten öffentlichen SSH-Schlüssel Ihrem Github-Konto hinzufügen.

13
mjulmer

Ich stand vor demselben Problem. In meinem .ssh-Ordner befand sich eine Datei mit dem Namen 'Bekannte Hosts'. Ich versuchte immer wieder, neue SSH-Schlüssel zu löschen und zu erstellen, aber es funktionierte nicht. Am Ende habe ich alles in .ssh gelöscht, einschließlich "Bekannte Hosts", und dann einen neuen RSA-Schlüssel erstellt mit:

ssh-keygen -t rsa

dann fügte ich diesen neuen Schlüssel zu heroku hinzu:

heroku keys:add

dann erstelle ein neues Heroku-Repo und schiebe meine App dazu:

heroku create
git Push heroku master
8
Adam Labi
ssh-keygen -t rsa

Oben ist optional, da Sie auch auf einen vorhandenen Schlüssel verweisen können. Heroku fordert im nächsten Schritt zur Auswahl des Schlüssels auf.

heroku keys:add

Fügen Sie Ihren neu erstellten oder einen vorhandenen Schlüssel hinzu. Wenn das Problem weiterhin besteht, müssen Sie den Schlüssel der Liste der ssh-Schlüssel Ihres Computers hinzufügen, indem Sie Folgendes ausführen:

ssh-add ~/.ssh/name_of_your_rsa

und bestätigen Sie, dass Ihre SSH hinzugefügt wurde

ssh-add -l

Damit sollten Sie auf Remote-Repo von Push to Heroku zugreifen können.

4
ajhino

unter OSX hatte ich das gleiche Problem, das ich bekam

no such identity: /Users/me/.ssh/yourPrivateKey: No such file or directory
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Ich habe versucht, einen neuen Schlüssel mit ssh-keygen -t rsa zu erstellen und ihn dann mit Heroku-Schlüsseln hinzuzufügen: add, aber es hat nicht geholfen.

Dann fand ich eine Datei mit dem Namen config in ~/.ssh /, und in der Datei befand sich:

ServerAliveInterval 300
ServerAliveCountMax 3

Host heroku.com
    user git
    hostname heroku.com
    identityfile ~/.ssh/yourPrivateKey

Also habe ich yourPrivateKey zu meinem privaten Schlüsselnamen ( id_rsa standardmäßig) geändert und es hat funktioniert :)

2
wiherek

Wenn Sie unter Windows arbeiten, stellen Sie sicher, dass Sie git-bash anstelle von Powershell/Command Prompt verwenden.

Wenn Sie nur Ihre SSH-Schlüssel zurücksetzen möchten:

  1. löschen Sie das .ssh-Verzeichnis Ihres Benutzers
  2. Öffnen Sie Git-Bash 
  3. ssh-keygen -t rsa
  4. heroku-Schlüssel: hinzufügen

und dann kannst du Push drücken.

0
Guildenstern70

Ich habe einen Schlüssel mit erstellt 

ssh-keygen -t rsa

und verwendet einen anderen Dateinamen als id_rsa (in meinem Fall Heroku). Ich habe den Schlüssel zu Heroku hinzugefügt

heroku keys:add

Beim Versuch, meinen Stammzweig auf Heroku zu verschieben, wurde immer der folgende Fehler angezeigt: 

$ git Push Heroku Master
Die Authentizität von Host 'heroku.com
(50.19.85.132) 'kann nicht hergestellt werden. RSA Key Fingerprint ist
8b: 48: 5e: 67: 0e: c9: 16: 47: 32: 99: 87: 0c: 1f: c8: 60: bb. Bist du sicher, dass du willst
Verbindung fortsetzen (ja/nein)? ja Warnung: Dauerhaft hinzugefügt
'heroku.com, 50.19.85.132' (RSA) zur Liste der bekannten Hosts. Genehmigung
verweigert (publickey). fatal: Konnte nicht aus dem Remote-Repository lesen. 

Stellen Sie sicher, dass Sie über die richtigen Zugriffsrechte und das Repository verfügen existiert. 

Wie ich bemerkt habe, hat git meinen id_rsa-Schlüssel nur von einem anderen ssh-Zugang verwendet (Sie können dies über Ihr git gui überprüfen: Hilfe -> SSH-Schlüssel).

Ich habe mein .ssh-Verzeichnis C:\Users \% username% .ssh in .ssh.bak umbenannt und meinen privaten/öffentlichen Schlüssel heroku kopiert (aus .ssh.bak verzeichnis) in ein neu erstelltes .ssh verzeichnis und benannte es id_rsa (und id_rsa.pub). 

Nun hat das Schieben wie erwartet funktioniert:

git Push heroku master