J'ai cherché pendant de nombreuses heures à la recherche d'une solution à mon problème apparemment facile à résoudre. Ce n'est pas que ma recherche n'a rien révélé, c'est que ma recherche a révélé tant de solutions différentes - dont aucune n'a fonctionné.
Quoi qu'il en soit, je suis tout simplement incapable de pousser, extraire ou récupérer de mon référentiel Heroku depuis mon Mac. Chaque tentative me donne (comme si elle se moquait 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 quelques-unes des choses que j'ai essayées:
- clés heroku: effacer suivi des clés heroku: ajouter
- Régénérer une clé ssh moi-même avec 'ssh-keygen -t rsa'
- Effacer mon répertoire .ssh, suivi des clés heroku: effacer, 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)
Je peux aller chercher mon dépôt GitHub très bien, donc je sais que ce n'est pas une connectivité réseau (ping heroku fonctionne également).
En tant que solution improvisée (qui, je l'espère, ne deviendra pas 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 bien (je n'utilise pas ssh, cependant), alors pourquoi pas Heroku?
À ce stade, je suis prêt à tout essayer. Merci!
la source
Réponses:
Je sais que cela a déjà été répondu. Mais j'aimerais ajouter ma solution car elle peut être utile pour d'autres à l'avenir.
Une erreur clé commune est:
Permission denied (publickey)
. Vous pouvez résoudre ce problème en utilisantkeys: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:
Deuxièmement, vous devez ajouter la clé à Heroku:
la source
heroku keys:add
vous aidera à en créer une si vous n'avez pas de clé.ssh-keygen -t rsa
si leRSA
n'est pas généré sinonheroku keys:add
devrait suffireJ'ai juste pensé partager que j'avais trouvé la réponse à ma propre question.
L'écriture de mon problème m'a rendu encore plus clair, et j'ai étudié plus en détail où je pensais que mon problème se situait: la clé ssh
Il s'avère 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ée à la liste des clés ssh connues de mon Mac local. Ainsi, même si mon compte Heroku avait la bonne clé téléchargée, mon Mac n'a pas pu s'authentifier avec elle car il ne pouvait pas trouver cette clé sur mon ordinateur. La solution?
Je tiens à remercier https://help.github.com/articles/error-permission-denied-publickey d'être une bonne référence.
la source
Git Bash
(cliquer avec le bouton droit sur un dossier), démarrer unssh-agent
ce qui est possible en exécutant`ssh-agent`
(attention aux rétrogradations), puis ajouter la clé comme décrit ci-dessus. Je dois le faire à chaque fois que je lance leGit Bash
/ssh-agent
, cela oublie ce qui a été ajouté.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é ajouter la cause et la solution ici pour les autres.
Même si l'erreur semblait pointer vers heroku, l'erreur disait vraiment
"Heroku can't get to the git repository"
. J'ai juré que j'avais les mêmes clés sur tous les serveurs parce que je les ai créées et téléchargées les unes après les autres en même temps.Après avoir passé presque une journée là-dessus, j'ai réalisé que parce que git ne me montrait que l'empreinte digitale et non la clé réelle. Je n'ai pas pu vérifier que sa clé correspondait à celle de mon disque dur ou de mon heroku. J'ai regardé dans le fichier d'hôtes connus et devinez quoi ... il montre les clés de chaque serveur et j'ai pu clairement voir 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 la commande
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 sur git
3) en utilisant
git bash-
heroku keys:add
pour télécharger la même clé sur heroku.Fonctionne maintenant
git push heroku master
.quel cauchemar, j'espère que cela a aidé quelqu'un.
Bryan
la source
Le problème que j'avais est que j'utilisais uniquement https pour mon compte GitHub. Je devais m'assurer que mon compte GitHub était configuré pour l'accès ssh et que GitHub et heroku utilisaient tous les deux les mêmes clés publiques. Voici les étapes que j'ai suivies:
Accédez au répertoire ~ / .ssh et supprimez les id_rsa et id_rsa.pub s'ils s'y trouvent. J'ai commencé avec de nouvelles clés, même si cela n'est peut-être pas nécessaire.
Connectez-vous à heroku, créez un nouveau site et ajoutez vos clés publiques:
la source
J'ai eu le même cas sur Linux ubuntu et je viens de le réparer, il semble que le système d'exploitation était confondu entre le /root/.ssh/ et home / user / .ssh / dir, ce que j'ai fait était:
heroku keys
heroku keys:clear
heroku keys:add
maintenant ici si heroku n'a pas pu trouver une clé et a demandé à en générer une non, et cela signifie que vous avez le même problème que le mien, exécutez la commande add comme celle-ci,heroku keys:add /root/.ssh/id_rsa.pub
le chemin que vous allez ajouter sera celui que vous avez à l'étape 2.git push heroku master
maintenantla source
Mon chemin sur Windows 8
Ajoutez un répertoire avec ssh-keygen à la variable système PATH, généralement C: \ Program Files (x86) \ Git \ bin
Ouvrez CMD, accédez à C: \ Users \ Me \
Générer la clé SSH
ssh-keygen -t rsa
Entrez le fichier dans lequel enregistrer la clé (//.ssh/id_rsa): .ssh / id_rsa (changez un chemin incorrect par défaut en .ssh / somegoodname_rsa)
Ajouter la clé à Heroku
heroku keys:add
Sélectionnez une clé créée dans une liste
Accédez au répertoire de votre application, écrivez du beau code
Initier un dépôt git
git init
git add .
git commit -m 'chore(release): v0.0.1
Créer une application Heroku
heroku create
Déployez votre application
git push heroku master
Ouvrez votre appli
heroku open
la source
J'ai eu un problème similaire et j'ai essayé beaucoup de choses. En fin de compte, ce qui a fonctionné pour moi, c'était d'avoir Gnu sur Windows installé ( https://github.com/bmatzelle/gow/releases ) et de m'assurer qu'il utilisait l'outil ssh dans ce répertoire et non celui avec Git. Une fois installé, testez avec (assurez-vous que c'est dans votre environnement PATH qu'il précède Git \ bin)
J'ai utilisé du mastic et du pageant 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: ajoutez c: \ Users \ Person.ssh \ id_rsa.pub), utilisez
et assurez-vous que votre pile montre l'utilisation de Putty - c'est-à-dire une pile de travail:
Celui qui fonctionnait auparavant et qui a échoué:
la source
vous devez créer une nouvelle clé ssh en tapant ce qui suit - ssh-keygen -t rsa
Ensuite, vous devez ajouter: - clés heroku: ajouter
Ensuite, si vous tapez - heroku ouvert
Le problème a été résolu.
Cela a fonctionné pour moi de toute façon, vous pouvez l'essayer ...
la source
J'ai eu la même erreur, et parce que j'ai 4 clés ssh, j'ai donc essayé de suivre:
puis, quatre options montrent:
Je choisis 3), le plus récent
Ensuite, je corrige l'erreur.
la source
J'utilise cette méthode pour résoudre ce problème Vous pouvez peut-être l'essayer
"Activer ssh-agent"
http://git-scm.com/
Installez-le
Activer ssh-agent
C: \ Program Files \ Git \ cmd
start-ssh-agent
Le message disparaît après l'activation de l'agent J'espère que cela vous aidera
la source
J'aimerais ajouter une autre solution puisque je ne l'ai pas vue ici. Mon problème était que heroku était lié à la mauvaise URL (puisque je continuais à jouer avec les noms d'URL). La modification de l'url distante a résolu mon problème:
la source
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 ne fonctionnait toujours pas. Car c'était parce que j'ai renommé l'application.
J'ai donc réinitialisé mes clés et renommé l'application à partir de la console. Consultez cette question pour plus d'informations: Problème d'application Heroku push
la source
SO So So solution simple, allez à c: /Users/user_name/.ssh/ et supprimez toutes les paires de clés pub / private, de cette façon heroku générera des clés pour vous.
la source
J'ai eu une erreur ssh heroku similaire que je n'ai pas pu résoudre.
Pour contourner le 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 manière standard, exécutez heroku git: remote --http-init pour changer la télécommande "heroku" en http.)
Une bonne solution rapide si vous n'avez pas le temps de résoudre / dépanner un problème ssh.
la source