Heroku ‘Autorisation refusée (publickey) fatale: Impossible de lire les malheurs du référentiel distant

J’ai cherché pendant plusieurs heures sur une solution à mon problème apparemment facile à résoudre. Ce n’est pas que ma recherche n’ait rien donné, c’est que ma recherche a abouti à tant de solutions différentes – dont aucune n’a fonctionné.

Quoi qu’il en soit, je suis tout simplement incapable de pousser, d’extraire ou de récupérer depuis mon repository Heroku depuis mon Mac. Chaque tentative me donne (comme si elle se moque de moi) l’erreur suivante:

‘Autorisation refusée (publickey). fatal: Impossible de lire à partir du référentiel distant. ‘

J’ai essayé (et réessayé) de le réparer de différentes manières. Comme je l’ai dit, j’ai passé une bonne partie des deux derniers jours à chercher une réponse. Voici certaines des choses que j’ai essayées:

  • touches heroku: effacer suivi des touches heroku: append
  • Régénérer moi-même une clé ssh avec ‘ssh-keygen -t rsa’
  • Effacer mon répertoire .ssh, suivi des touches heroku: clear, suivi de la génération d’une clé ssh
  • Supprimer mon application sur heroku et en recréer une (heureusement, il n’y avait pas grand chose là-bas)

Je peux aller chercher mon répertoire GitHub correctement, donc je sais que ce n’est pas la connectivité réseau (le ping Heroku fonctionne également).

En tant que solution de fortune (que j’espère ne pas devenir permanente), je me suis connecté à mon instance Ubuntu Amazon AWS ec2. Tirer et pousser vers et depuis Heroku fonctionne parfaitement. Pour cette raison, j’ai toujours l’impression que le problème réside dans la clé ssh de mon Mac. Les deux clés apparaissent sous mon compte Heroku. L’adresse e-mail à la fin de la clé est-elle importante?

EDIT: Je peux pousser et tirer de GitHub correctement (je n’utilise pas ssh, cependant), alors pourquoi pas Heroku?

À ce stade, je suis prêt à tout essayer. Merci!

Je sais que cela a déjà été répondu. Mais je voudrais append ma solution car elle pourrait être utile pour les autres à l’avenir.

Une erreur de clé commune est: Permission denied (publickey) . Vous pouvez résoudre ce problème en utilisant les keys:add pour informer Heroku de votre nouvelle clé.

En bref, suivez ces étapes: https://devcenter.heroku.com/articles/keys

Vous devez d’abord créer une clé si vous n’en avez pas:

 ssh-keygen -t rsa 

Deuxièmement, vous devez append la clé à Heroku:

 heroku keys:add 

Je pensais juste que je partagerais que j’ai trouvé la réponse à ma propre question.

La rédaction de mon problème m’a rendu encore plus clair, et j’ai approfondi mes recherches là où je pensais que mon problème était le suivant: la clé ssh

Il s’est avéré que j’avais raison. Le problème n’était pas avec la clé elle-même, mais plutôt que je ne l’avais pas ajouté à la liste des clés SSH connues de mon Mac local. Donc, bien que la clé correcte ait été téléchargée sur mon compte Heroku, mon Mac ne pouvait pas s’authentifier avec cette clé car elle ne pouvait pas trouver cette clé sur mon ordinateur. La solution?

 ssh-add ~/.ssh/id_rsa #and, to confirm it's been added to the known list of keys ssh-add -l 

Je voudrais donner crédit à https://help.github.com/articles/error-permission-denied-publickey pour être une bonne référence.

J’ai eu exactement la même erreur (sur Windows 7) et la cause était différente. Je l’ai résolu d’une manière différente, alors j’ai pensé append la cause et la solution ici pour les autres.

Même si l’erreur semblait indiquer que heroku était vraiment en cause, l’erreur disait "Heroku can't get to the git repository" . J’ai juré que j’avais les mêmes clés sur tous les serveurs, car je les ai créés et téléchargés l’un après l’autre en même temps.

Après avoir passé presque une journée là-dessus, je me suis rendu compte que git ne me montrait que les empreintes digitales et non la clé. Je n’ai pas pu vérifier que la clé correspondait à celle de ma HD ou de mon heroku. J’ai regardé dans le fichier hosts connu et devinez quoi … il montre les clés pour chaque serveur et j’ai pu voir clairement que les clés publiques git et heroku ne correspondaient pas.

1) J’ai supprimé tous les fichiers de mon dossier de clés, la clé de github en utilisant leur site Web, et la clé de heroku en utilisant git bash et les commandes heroku keys:clear

2) Suivez les instructions de github ici pour générer une nouvelle paire de clés et télécharger la clé publique pour git

3) en utilisant les heroku keys:add git bash- heroku keys:add pour télécharger la même clé sur heroku.

Maintenant, git push heroku master works.

quel cauchemar, j’espère que cela a aidé quelqu’un.

Bryan

Le problème que je rencontrais est que je n’utilisais que https pour mon compte GitHub. J’avais besoin de m’assurer que mon compte GitHub était configuré pour l’access ssh et que GitHub et heroku utilisaient tous les deux les mêmes clés publiques. Ce sont les étapes que j’ai sockets:

  1. Naviguez jusqu’au répertoire ~ / .ssh et supprimez les id_rsa et id_rsa.pub s’ils sont présents. J’ai commencé avec de nouvelles clés, bien que cela ne soit pas nécessaire.

     $ cd ~/.ssh $ rm id_rsa id_rsa.pub 
  2. Suivez les étapes sur gitHub pour générer des clés ssh
  3. Connectez-vous à heroku, créez un nouveau site et ajoutez vos clés publiques:

     $ heroku login ... $ heroku create $ heroku keys:add $ git push heroku master 

J’ai eu le même cas sur Linux Ubuntu et juste corrigé, il semble que l’OS a été confondu entre /root/.ssh/ et home / utilisateur / .ssh / dir, ce que j’ai fait était:

  1. a supprimé toutes les clés du répertoire racine et du répertoire home / user .shh.
  2. généré une nouvelle clé assurez-vous de faire attention au chemin de la création (/home/you/.ssh/id_rsa) ou (/root/.ssh/id_rsa)
  3. vérifier les clés de heroku keys
  4. si les clés dans les clés de heroku keys:clear
  5. heroku keys:add maintenant ici si heroku ne pouvait pas trouver une clé et demandait de générer un droit non, et cela signifie que vous avez le même problème que le mien, faites la commande add comme celle- heroku keys:add /root/.ssh/id_rsa.pub Le chemin que vous appendez sera celui que vous avez obtenu à l’étape 2.
  6. essayez git push heroku master maintenant

Ma façon sur Windows 8

  1. Ajoutez un répertoire avec ssh-keygen à la variable système PATH, généralement C: \ Program Files (x86) \ Git \ bin

  2. Ouvrez CMD, allez à C: \ Users \ Me \

  3. Générer la clé SSH ssh-keygen -t rsa

    Entrez le fichier dans lequel enregistrer la clé (//.ssh/id_rsa): .ssh / id_rsa (remplacez un chemin incorrect par défaut par .ssh / somegoodname_rsa)

  4. Ajoutez la clé aux clés Heroku Heroku heroku keys:add

    Sélectionnez une clé créée dans une liste

  5. Accédez au répertoire de votre application, écrivez du code

  6. Lancer un git repo git init git add . git commit -m 'chore(release): v0.0.1

  7. Créer Heroku application heroku create

  8. Déployez votre application git push heroku master

  9. Ouvrez votre application heroku open

J’ai eu un problème similaire et essayé beaucoup de choses. En fin de compte, ce qui a fonctionné pour moi, c’était d’installer Gnu sur Windows ( https://github.com/bmatzelle/gow/releases ), et de vérifier qu’il utilisait l’outil ssh dans ce répertoire et non celui avec Git. Une fois installé, testez avec (assurez-vous que si c’est dans votre environnement PATH qu’il est précédé de Git \ bin)

 C:\Git\htest2>which ssh C:\Program Files (x86)\Gow\bin\ssh.BAT 

J’ai utilisé du mastic et du concours comme décrit ici: http://rubyonrailswin.wordpress.com/2010/03/08/getting-git-to-work-on-heroku-on-windows-using-putty-plink-pageant/

Une fois les clés envoyées à heroku (clés heroku: append c: \ Users \ Person.ssh \ id_rsa.pub), utilisez

 ssh -v @heroku.com 

et assurez-vous que votre stack montre l’utilisation de Putty – c’est-à-dire une stack de travail:

 Looking up host "heroku.com" Connecting to 50.19.85.132 port 22 Server version: SSH-2.0-Twisted Using SSH protocol version 2 **We claim version: SSH-2.0-PuTTY_Release_0.62** Using Diffie-Hellman with standard group "group1" Doing Diffie-Hellman key exchange with hash SHA-1 Host key fingerprint is: ssh-rsa 2048 8b:48:5e:67:0e:c9:16:47:32:f2:87:0c:1f:c8:60:ad Initialised AES-256 SDCTR client->server encryption Initialised HMAC-SHA1 client->server MAC algorithm Initialised AES-256 SDCTR server->client encryption Initialised HMAC-SHA1 server->client MAC algorithm Pageant is running. Requesting keys. Pageant has 1 SSH-2 keys Using username "*--ommitted for security--*". **Trying Pageant key #0** Authenticating with public key "rsa-key-20140401" from agent Sending Pageant's response Access granted Opened channel for session Server refused to allocate pty Server refused to start a shell/command FATAL ERROR: Server refused to start a shell/command 

Un qui fonctionnait précédemment et a échoué:

 C:\Git\htest2>ssh -v @gmail.com@heroku.com 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/Users/Person/.ssh/identity type -1 debug1: identity file /c/Users/Person/.ssh/id_rsa type 1 debug1: identity file /c/Users/Person/.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 ssortingng 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/Users/Person/.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/Users/Person/.ssh/identity debug1: Offering public key: /c/Users/Person/.ssh/id_rsa debug1: Server accepts key: pkalg ssh-rsa blen 277 debug1: Trying private key: /c/Users/Person/.ssh/id_dsa debug1: No more authentication methods to try. Permission denied (publickey). 

vous devez créer une nouvelle clé ssh en tapant ce qui suit – ssh-keygen -t rsa

Ensuite, vous devez append: – clés heroku: append

Alors si vous tapez – heroku ouvert

Le problème a été résolu.

Ca a fonctionné pour moi quand même, tu pourrais essayer …

J’ai eu la même erreur, et parce que j’ai 4 clés ssh, j’ai donc essayé de suivre:

 ssh-keygen -t rsa heroku keys:add 

Quatre options s’affichent alors:

 1) github_rsa.pub 2) id_boot2docker.pub 3) id_rsa.pub 4) sshkey.pub 

Je choisis 3), le plus récent

Ensuite, je corrige l’erreur.

J’utilise cette méthode pour résoudre ce problème Peut-être que tu peux l’essayer

“Activer ssh-agent”

  1. Télécharger git

http://git-scm.com/

  1. Installez-le

  2. Activer ssh-agent

C: \ Program Files \ Git \ cmd

start-ssh-agent

Le message disparaît après que l’agent a activé J’espère que cela vous aidera

J’aimerais append une autre solution car je ne l’ai pas vue ici. Mon problème était que heroku était lié à la mauvaise URL (depuis que je continuais à jouer avec les noms d’url). L’édition de l’URL distante a résolu mon problème:

 git remote set-url heroku  

J’ai eu le même problème. Et j’ai essayé de réinitialiser mes clés comme tout le monde l’a dit, mais cela n’a toujours pas fonctionné. Car c’est parce que j’ai renommé l’application.

Donc, ce que j’ai fait était de réinitialiser mes clés et de renommer l’application depuis la console. Consultez cette question pour plus d’informations: Problème de l’application Push Heroku

Donc, une solution si simple, allez à c: /Users/nom_utilisateur/.ssh/ et supprimez toutes les paires de clés publiques / privées, de cette façon, heroku générera des clés pour vous.

J’ai eu une erreur similaire à heroku ssh que je n’ai pas pu résoudre.

Pour contourner ce problème, j’ai utilisé la nouvelle fonctionnalité heroku http-git (transport HTTP pour “heroku” remote au lieu de ssh). Détails ici: https://devcenter.heroku.com/articles/http-git

(Version courte: si vous avez déjà un projet configuré de la manière standard, lancez heroku git: remote –http-init pour changer “heroku” distant en http.)

Un bon travail rapide si vous n’avez pas le temps de réparer / dépanner un problème ssh.