Autorisation refusée (publickey) lors du déploiement du code Heroku. fatal: l’extrémité distante a raccroché de manière inattendue

Je tente de déployer mon code sur heroku avec la ligne de commande suivante:

git push heroku master 

mais obtenez l’erreur suivante:

 Permission denied (publickey). fatal: The remote end hung up unexpectedly 

J’ai déjà téléchargé ma clé SSH publique, mais cette erreur persiste.

Vous devez télécharger votre clé publique sur Heroku:

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

Si vous ne possédez pas de clé publique, Heroku vous invite à en append une automatiquement, ce qui fonctionne parfaitement. Utilisez simplement:

 heroku keys:add 

Pour effacer toutes vos clés précédentes, procédez comme suit:

 heroku keys:clear 

Pour afficher toutes vos clés existantes, procédez comme suit:

 heroku keys 

MODIFIER:

Ce qui précède n’a pas semblé fonctionner pour moi. J’avais déconné avec la variable d’environnement HOME et donc SSH cherchait des clés dans le mauvais répertoire.

Pour vous assurer que SSH vérifie la clé dans le bon répertoire, procédez comme suit:

 ssh -vT git@heroku.com 

Qui affichera les lignes (exemple) suivantes

 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 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/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).

De ce qui précède, vous pouvez observer que ssh recherche les clés dans le répertoire /c/Wrong/Directory/.ssh , ce qui ne correspond pas aux clés publiques que nous venons d’append à heroku (en utilisant les heroku keys:add ~/.ssh/id_rsa.pub ) ( Veuillez noter que dans Windows OS ~ fait référence au chemin HOME qui dans win heroku keys:add ~/.ssh/id_rsa.pub est C:\Users\UserName )

Pour afficher votre répertoire personnel actuel: echo $HOME ou echo %HOME% (Windows)

Pour définir correctement votre répertoire HOME (j’entends par là le répertoire parent du répertoire .ssh , pour que ssh puisse chercher les clés dans le répertoire correct), reportez-vous aux liens suivants:

  1. SO Réponse sur la façon de définir la variable d’environnement Unix de manière permanente

  2. SO Question relative à ssh recherchant des clés dans le mauvais répertoire et une solution pour le même.

J’ai eu le même problème, les étapes ci-dessous ont fonctionné pour moi,

 ->heroku login 

abc@gmail.com & mot de passe

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

->ssh-keygen -t rsa -f id_rsa

Si cela est demandé, les mots de passe ne contiennent pas de phrase vide, remplissez-les avec une phrase secrète, mais ne l’oubliez pas.

Après avoir généré la clé, vous devez l’append, comme ça

 $ ssh-add 

et ça à heroku

 ->heroku keys:add "id_rsa.pub" 

changer de répertoire en espace de travail, que

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

utilisez le mot de passe que vous avez défini ci-dessus.


En fait, je supprime également les fichiers ci-dessous, mais je ne suis pas sûr qu’ils soient imp,

C: \ Users \ nom d’utilisateur.heroku \ credientals et C: \ Users \ yourusername.ssh \ known_hosts

Ce problème me dérangeait depuis quelques jours.

Cela pourrait aider.

1) Découvrez les clés que vous avez dans Heroku maintenant.

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

2) Construisez un fichier ~ / .ssh / config:

 $ sudo vim ~/.ssh/config 

Modifier avec cette info

 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 

Voici le lien qui explique comment gérer vos clés ssh: http://devcenter.heroku.com/articles/keys#adding_keys_to_heroku

J’ai eu le même problème parce que je n’avais pas de clés publiques, donc j’ai fait:

 heroku keys:clear heroku keys:add 

Cela va générer une clé publique et ça marche bien

Si vous êtes un utilisateur de Windows, les autres solutions ne résoudront probablement pas votre problème.

J’utilise Windows 7 64 bits + Git-1.7.7.1-preview20111027 et la solution consistait à copier mes clés depuis C:\users\user\.ssh vers C:\Program Files (x86)\Git\.ssh . C’est là que ce client git cherche les clés lorsqu’il passe à heroku.

J’espère que ça aide.

C’était la solution pour moi:

 ssh-add ~/.ssh/my_heroku_key_rsa 

Pour partager mon expérience:

Git (ma propre installation) cherchait la clé nommée ‘id_rsa’.

J’ai donc essayé de renommer mes clés en ‘id_rsa’ et ‘id_rsa.pub’ et cela a fonctionné.

Au fait, je suis sûr qu’il y a une autre façon de le faire mais je n’ai pas encore regardé plus profondément.

Si vous avez déjà téléchargé la clé, essayez de la retirer, puis téléchargez-la à nouveau avec une nouvelle clé.

  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 ie, ~/.ssh/id_rsa is uploaded git push heroku 

cela devrait fonctionner.

Je me suis tué pendant 3 jours en essayant toutes les combinaisons possibles pour essayer de faire en sorte que cela fonctionne – j’ai finalement essayé de créer une clé DSA et cela a fonctionné.

Essayez DSA au lieu de RSA si cela ne fonctionne pas pour vous.

(J’utilise Ubuntu 11.10, ruby ​​1.8.7, heroku 2.15.1)

Sur Windows 7,64 bit, la solution ci-dessus (celle d’Onur Turhan) a fonctionné pour moi avec de légères modifications comme ci-dessous

 C:\Users\MyName > heroku login 

Entrez l’email / mot de passe

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

Cela a généré deux fichiers (id_rsa et id_rsa.pub) dans mon répertoire c: \ Users \ MyName (pas dans le répertoire .ssh)

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

Je pense que l’ajout du fichier correct “id_rsa.pub” est le plus important. Après avoir généré la clé publique à l’aide de keygen, vérifiez simplement que vous ajoutez la clé correcte en regardant l’horodatage lors de sa création.

Une seule commande fonctionne:

 heroku keys:add 

Il en fera un s’il n’existe pas.

J’ai eu ce problème lorsque TortoiseGIT a été installé sur ma machine. Après avoir modifié la variable d’environnement GIT_SSH partir de

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

à

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

et en suivant ce tutoriel avec ssh-keygen et keys:add , ça marche!

Pousser travaillait pour moi et s’est arrêté soudainement.

Si l’API Heroku connaît un temps d’arrêt, vous obtiendrez cette erreur lorsque vous essayez de pousser.

Vérifier:

https://status.heroku.com/

avant de paniquer trop fort.

Séquence à suivre

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

Lors de l’exécution de la deuxième déclaration, il demanderait une entrée, appuyez simplement sur Entrée (retour) trois fois et une clé sera ajoutée.

La réponse donnée ci-dessus fonctionne, mais j’ai découvert que je devais faire quelques pas supplémentaires avant que cela ne fonctionne.

  1. J’ai supprimé tous les fichiers id_rsa * et généré un nouveau SSH en utilisant ce guide.
  2. Ensuite, j’ai détruit l’application Heroku. Suppression du fichier ~ / .heroku / credentials.
  3. La commande ‘heroku create’ (et puisque le fichier de référence est supprimé, il vous demandera votre adresse e-mail / mot de passe.
  4. Tapez ENFIN «heroku keys: add» et il téléchargera le fichier ~ / .ssh / id_rsa.pub par défaut.
  5. Ça marche! Eh bien …. mais j’espère vraiment que cela peut être une aide pendant toute la journée en essayant de comprendre cela! Haha

Pour tous ceux qui ont essayé tout ce qui est mentionné ci-dessus sous Windows 7 et qui n’a toujours pas fonctionné, voici ce que j’ai fait: – ouvrez GitBash.exe à partir du répertoire Git C: \ Program Files (x86) \ Git \ (don ‘) t ouvrez une invite de commande, cela ne fonctionnera pas). – ajoutez ce qui suit comme indiqué ci – dessus , mais vous devez supprimer le #

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

maintenant exécuter git push heroku master et cela devrait fonctionner.

Cela ressemble à votre fichier ~/.ssh/authorized_keys n’est pas configuré correctement. Vérifier que:

  • C’est dans le bon chemin.
  • Les permissions du fichier sont 0600.
  • Les permissions de ~/.ssh sont 0700.

Je devais faire:

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

Ensuite, cela a fonctionné:

 $ git push heroku master 

Vérifiez votre config .ssh pour heroku. Accédez au dossier .ssh et ouvrez le fichier de configuration

 cd ~/.ssh subl config 

Le ‘subl’ est pour Sublime Text, mais vous pouvez utiliser n’importe quel éditeur. Recherchez la ligne “IdentityFile” et assurez-vous que la clé non publique est répertoriée:

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

ne pas

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

Cela l’a fait pour moi. Je ne suis pas sûr de savoir pourquoi le mien avait la version publique dans le fichier de configuration, mais il l’a fait et il a jeté l’erreur:

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

J’avais encore des problèmes après avoir essayé toutes ces idées. C’était mon problème:

Mon repository distant heroku a été piraté. Je l’ai rafraîchi comme suit:

 git remote -v 

Ensuite, enlevez celui qui est faux:

 git remote rm heroku 

Puis ajoutez le nouveau

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

Vous pouvez obtenir le nom du site depuis votre page de parameters Heroku pour votre application. Bonne chance!

Le problème que je rencontrais était sur Windows et invariablement chaque fois que j’exécutais les “clés du héros: append”, il sélectionnait les touches github. Alors, voici les étapes que j’ai suivies pour résoudre le problème

  1. est allé dans le répertoire .ssh sous le dossier “Document and Settings” et a supprimé les clés git hub
  2. lancez la commande clés heroku: add

La commande ci-dessus m’a demandé de générer une nouvelle clé et voici la sortie Impossible de trouver une clé publique existante. Voulez-vous en générer un? [Yn] Y Génération d’une nouvelle clé publique SSH. Téléchargement de la clé publique SSH C: / Documents and Settings / Admin / .ssh / id_rsa.pub … done! Le joyau «heroku» est devenu obsolète et remplacé par Heroku Toolbelt, que vous pouvez télécharger et installer depuis https://toolbelt.heroku.com .

  1. relancez la commande heroku keys: add

La commande ci-dessus ne donne pas la sortie suivante: Clé publique existante trouvée: C: / Documents and Settings / Admin / .ssh / id_rsa.pub Téléchargement de la clé publique SSH C: / Documents and Settings / Admin / .ssh / id_rsa.pub .. . terminé

  1. Maintenant, utilisez le master hero

pour moi, utiliser les étapes ci-dessus a résolu le problème et a pu déployer l’application sur le cloud.

Je rencontrais le même problème suivre ces étapes devrait vous aider:

  1. Tout d’abord, connectez-vous: heroku login
  2. Effacer toutes les clés: touches heroku: effacer
  3. Supprimer tous les fichiers du dossier local (tous les fichiers .pub et know_host ) dans le .ssh/ folder
  4. Connectez-vous à nouveau: login heroku – vous demandera sans clé, alors suivez les instructions à l’écran.

J’aimerais juste append que le répertoire n’est pas nécessairement C: \ Users \ [username] \. Ssh. C’est le répertoire dans lequel vous avez créé votre clé publique.

Par exemple, mon répertoire personnel sous Windows a été remplacé par C: \ [nom d’utilisateur]. Votre répertoire personnel dans un sous-dossier .ssh est le meilleur et le plus probable que vous ayez créé vos clés. Vous pouvez vérifier votre répertoire de base sous Windows avec la commande suivante:

  echo %HOMEPATH% 

Si vous voulez utiliser “sudo”, exemple:

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

vous devez également générer la clé ssh pour votre utilisateur root.

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

et ça va marcher.

Si vous n’utilisez pas l’utilisateur root, générez plutôt la clé ssh dans votre répertoire utilisateur.

 cd /home/user/.ssh 

Désolé si mes phrases ont foiré …

Essayez de réparer les permissions dans Utilitaire de disque (Mac OS X). M’a aidé

Assurez-vous d’abord que les fichiers cachés sont visibles sur votre Mac. Si ce n’est pas le cas:

  • Ouvrez le terminal et saisissez les defaults write com.apple.Finder AppleShowAllFiles TRUE par defaults write com.apple.Finder AppleShowAllFiles TRUE
  • killall Finder

Prochaines étapes:

  • Aller à Users/user_name/.ssh/ supprimé tous les fichiers.
  • Ouverture du type de terminal dans ssh-keygen -t dsa
  • Puis les heroku keys:add ~/.ssh/id_dsa.pub

NB je l’ai fait dans Mac OSX 10.7.2 Lion. Bien que la procédure devrait être la même dans d’autres aussi.

J’ai aussi ce problème. J’utilise Mac OSX. La façon dont j’ai résolu cela était de se connecter en tant qu’administrateur

sudo su

mot de passe

La solution de dmajkic m’aide enfin:

Pour les utilisateurs de Windows, cela peut signifier: le client git n’a pas trouvé vos clés. Vérifiez les clés dans c: \ Users \ UserName.ssh \ et! variable d’environnement HOME = c: \ Users \ UserName \

Voici ce qui a fonctionné pour moi. Le site heroku n’est pas ajouté à vos hôtes connus. Allez dans les référentiels window-other-show view-git-git. De là, clonez le repository. Une fois que vous l’avez cloné, supprimez le référentiel qui vient d’être créé, puis importez-le depuis le menu Fichier. Faites cela car lorsque vous clonez le référentiel, il ne l’ajoute pas à la vue de l’explorateur. Maintenant, vous devriez avoir le repository git et la vue de l’explorateur.