Heroku ' Permission denied (publickey) fatal: ne pouvait pas lire à partir des malheurs du dépôt à distance
j'ai cherché pendant des heures une solution à mon problème apparemment facile à résoudre. Ce n'est pas que mes recherches n'ont rien révélé, c'est que ma recherche a permis de nombreuses solutions différentes -dont aucun n'a fonctionné.
de toute façon, je ne suis tout simplement pas capable de push, pull, ou fetch de mon dépôt Heroku de mon Mac. Chaque tentative me donne (comme si elle se moquait de moi) l'erreur suivante:
'Permission refusée (publickey). fatal: ne pouvait pas lire à distance référentiel.
j'ai essayé (et ré-essayé) de le corriger de plusieurs façons. Comme je l'ai dit, j'ai passé une bonne partie de ces deux derniers jours à chercher une réponse. Voici quelques-unes des choses que j'ai essayées:
- heroku clés:claire suivie par heroku clés:ajouter
- la Régénération d'une clé ssh sur mon propre avec " ssh-keygen -t rsa
- L'effacement de mon .répertoire ssh, suivi des clés heroku: clear, suivi de la génération d'une clé ssh
- Supprimer mon application sur heroku et recréer un (heureusement pas beaucoup était là)
je peux obtenir de mon dépôt GitHub amende, donc je sais que ce n'est pas la connectivité réseau (pinging heroku fonctionne également).
comme solution de fortune (qui, je l'espère, ne deviendra pas permanente), je me suis connecté à mon Amazone Ubuntu AWS ec2 instance. Tirer et pousser vers et depuis Heroku fonctionne parfaitement. Pour cette raison, je me sens encore comme si le problème réside avec la clé ssh sur mon Mac. Les deux clés apparaissent sous Mon Compte Heroku. L'adresse email à la fin de la matière principale?
EDIT: je peux pousser et tirer à partir de GitHub fine (je ne suis pas en utilisant ssh, cependant), alors pourquoi ne pas Heroku?
à ce stade, je suis prêt à tout essayer. Merci!
14 réponses
je sais que cela a déjà été répondu. Mais je voudrais ajouter ma solution car elle peut en aider d'autres dans le futur..
une erreur-clé courante est: Permission denied (publickey)
. Vous pouvez corriger cela en utilisant keys:add
pour aviser Heroku de votre nouvelle clé.
en bref, suivez ces étapes: https://devcenter.heroku.com/articles/keys
d'Abord, vous devez créer une clé si vous n'en avez pas:
ssh-keygen -t rsa
Deuxièmement, vous devez ajouter la clé à Heroku:
heroku keys:add
j'ai juste pensé partager que j'ai trouvé la réponse à ma propre question.
L'écriture de mon problème m'a rendu encore plus clair, et j'ai examiné plus en détail où je pensais que mon problème se trouvait: la clé ssh
S'avère que j'avais raison. Le problème n'était pas avec la clé elle-même, mais plutôt que je n'avais pas ajouté à mon Mac liste des clés ssh. Donc, même si mon compte Heroku avait la bonne clé téléchargée, mon Mac ne pouvait pas authentifier avec ça parce qu'il n'a pas pu 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 la même erreur (sur windows 7) et la cause était différente. Je l'ai résolu d'une manière différente donc j'ai pensé que je voudrais ajouter la cause et la solution ici pour les autres.
même si l'erreur semblait indiquer à heroku vraiment 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 parce que je l'ai créé et téléchargé l'un après l'autre en même temps.
après avoir passé presque une journée sur ce I j'ai réalisé ça parce que git ne me montrait que l'empreinte digitale et pas la vraie clé. Je n'ai pas pu vérifier que la clé correspondait à celle de mon HD ou 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 voir clairement que les clés publiques Git et heroku ne correspondaient pas.
1) j'ai supprimé tous les fichiers de mon dossier clé, 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) a suivi les instructions de github ici pour générer une nouvelle paire de clés et télécharger la clé publique de git
3) utilisant git bash-
heroku keys:add
pour télécharger la même clé pour heroku.
Maintenant git push heroku master
.
quel cauchemar, j'espère que ça a aidé quelqu'un.
Bryan
le problème que j'avais, c'est que je n'utilisais https que 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 les mêmes clés publiques. Voici les mesures que j'ai prises:
-
Naviguer vers le ~/.ssh répertoire et supprimer les id_rsa et id_rsa.pub s'ils sont là. J'ai commencé avec de nouvelles clés, même si ce n'est pas nécessaire.
$ cd ~/.ssh $ rm id_rsa id_rsa.pub
- suivre les étapes sur gitHub à générer des clés ssh
-
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 je l'ai juste corrigé, il semble que OS était confondu entre le /root/.ssh/ et home/utilisateur/.SSH / dir, ce que j'ai fait était:
- a supprimé toutes les clés de root et home/user .shh répertoire.
- a généré une nouvelle clé assurez-vous de prêter attention au chemin de la création (/accueil/vous/.ssh / id_rsa) ou (/root/.ssh / id_rsa)
- vérifier heroku touches
heroku keys
- si les clés en il y a clairement des
heroku keys:clear
-
heroku keys:add
maintenant ici si heroku ne pouvait pas trouver une clé et a demandé de générer un droit non, et cela signifie que vous avez le même problème que le mien, faire la commande add comme ceciheroku keys:add /root/.ssh/id_rsa.pub
le chemin que vous allez ajouter sera celui que vous avez obtenu à l'étape 2. - essayer
git push heroku master
maintenant
à Ma façon sur Windows 8
-
Ajouter un répertoire avec ssh-keygen à la variable system PATH, habituellement C:\Program Files (x86)\Git\bin
-
Ouvrir CMD, aller à 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 (modifier un chemin incorrect par défaut pour .SSH / somegoodname_rsa)
-
ajouter la clé de Heroku
heroku keys:add
sélectionnez une clé créée à partir d'une liste
-
allez dans votre répertoire app, écrivez un beau code
-
Init un repo git
git init
git add .
git commit -m 'chore(release): v0.0.1
-
créer Demande d'Heroku
heroku create
-
déployez votre application
git push heroku master
-
ouvrez votre application
heroku open
avait un problème similaire, et a essayé beaucoup de choses. Finalement, ce qui a fonctionné pour moi, C'est que Gnu soit installé sur Windows ( https://github.com/bmatzelle/gow/releases ), et s'assurer qu'il utilisait l'outil ssh à l'intérieur de ce répertoire et non celui avec Git. Une fois installé test avec (s'assurer que son dans votre chemin d'environnement qu'il précède Git\bin)
C:\Git\htest2>which ssh
C:\Program Files (x86)\Gow\bin\ssh.BAT
j'ai utilisé du mastic et du concours de beauté 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 que les clés ont été envoyées à heroku (heroku clés:ajouter c:\Users\Person.SSH \ id_rsa.pub), utiliser
ssh -v <username>@heroku.com
et s'assurer que votre pile montre l'utilisation de Putty - ie une pile 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
celui qui fonctionnait précédemment et qui a échoué:
C:\Git\htest2>ssh -v <username>@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 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/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
alors vous devez ajouter: - les clés heroku: ajouter
alors si vous tapez - heroku ouvrir
Le problème a été résolu.
ça a marché pour moi de toute façon, tu pourrais essayer...
j'ai eu la même erreur, et parce que j'ai 4 touches ssh, donc j'ai essayé de suivre:
ssh-keygen -t rsa
heroku keys:add
puis, quatre options montrent:
1) github_rsa.pub
2) id_boot2docker.pub
3) id_rsa.pub
4) sshkey.pub
je choisis 3), le plus récent
alors, je répare l'erreur.
j'utilise cette méthode pour résoudre ce problème Peut-être que vous pouvez l'essayer
"Activer le ssh-agent"
- Télécharger git
-
Installer
-
Activer ssh-agent
C:\Program Files\Git\cmd
start-ssh-agent
le message disparaît après que j'ai activé l'agent J'espère que cela vous aidera
j'aimerais ajouter une autre solution puisque je ne l'ai pas vu ici. Mon problème était que heroku était lié à la mauvaise url (puisque je continuais à jouer avec les noms d'url). Éditer l'url à distance a résolu mon problème:
git remote set-url heroku <heroku-url-here>
j'ai eu le même problème. Et j'ai essayé de réinitialiser mes clés comme tout le monde le disait, Mais ça n'a pas marché. Car c'est parce que j'ai renommé l'application.
donc ce que j'ai fait était de réinitialiser mes clés et aussi renommer app à partir de la console. Cochez cette question pour plus d'informations: push Heroku app problème
ALORS, la solution la plus simple , aller à c:/Users/user_name/.SSH / et supprimer toutes les paires de clés pub / privé, de cette façon heroku va générer des clés pour vous.
j'ai eu une erreur heroku ssh similaire que je n'ai pas pu résoudre.
comme solution de contournement, j'ai utilisé la nouvelle fonctionnalité http-git heroku (transport http pour" heroku " remote au lieu de ssh). Plus de détails ici: https://devcenter.heroku.com/articles/http-git
(version courte: si vous avez un projet déjà configuré la manière standard, exécutez heroku git:remote --http-init pour changer" heroku " remote en http.)
A bon travail rapide autour si vous n'avez pas le temps de corriger/dépanner un ssh question.