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 abouti à rien, c’est que ma recherche a abouti à tant de solutions différentes, dont aucune n’a fonctionné.
Quoi qu'il en soit, je ne peux tout simplement pas pousser, tirer ou récupérer de mon référentiel Heroku à partir de 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 de ces deux derniers jours à chercher une réponse. Voici certaines des choses que j'ai essayées:
Je peux aller chercher très bien dans mon référentiel GitHub, donc je sais que ce n'est pas une connectivité réseau (la commande ping heroku fonctionne également).
En tant que solution de fortune (qui, je l’espère, ne se transformera pas en solution 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. Est-ce que l'adresse de courrier électronique à la fin de la clé est 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!
Je pensais juste partager avec vous que j'avais trouvé la réponse à ma propre question.
Ecrire mon problème me le rendit encore plus clair, et j’enquêtai plus avant sur le sens de mon problème: la clé ssh
Il s'avère que j'avais raison. Le problème ne concernait pas la clé elle-même, mais plutôt le fait que je ne l'eusse pas ajouté à la liste des clés ssh connues de mon Mac local. Ainsi, même si la clé correcte a été téléchargée sur mon compte Heroku, mon Mac ne peut pas s’authentifier avec ce compte car il ne peut 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.
Je sais que cela a déjà été répondu. Mais je voudrais ajouter ma solution car elle pourrait être utile à d’autres à l’avenir.
Une erreur de clé commune est: Permission denied (publickey)
. Vous pouvez résoudre ce problème en utilisant 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 ajouter la clé à Heroku:
heroku keys:add
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, en réalité, 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'avais créée et téléchargée l'une après l'autre en même temps.
Après avoir passé presque une journée là-dessus, je me suis rendu compte 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 la clé correspond à celle de ma HD ou de mon heroku. J'ai regardé dans le fichier hosts connu 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 de clés, la clé de github utilisant leur site Web et la clé de heroku 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.
Maintenant, git Push heroku master
fonctionne.
quel cauchemar, espérons que cela a aidé quelqu'un.
Bryan
Le problème que j'avais était que je n'utilisais que https pour mon compte GitHub. Je devais m'assurer que mon compte GitHub était configuré pour un accès SSH et que GitHub et heroku utilisaient les mêmes clés publiques. Ce sont les étapes que j'ai prises:
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 peut-être pas nécessaire.
$ cd ~/.ssh
$ rm id_rsa id_rsa.pub
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 le système d'exploitation a été 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 si Heroku ne peut pas trouver de clé et demande à en générer un non, et que cela signifie que vous avez le même problème que le mien, effectuez la commande add comme ceci heroku keys:add /root/.ssh/id_rsa.pub
le chemin que vous avez choisi. J'ajouterai sera celui que vous avez obtenu à l'étape 2.git Push heroku master
maintenantMon 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, allez à 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 (remplacez un chemin par défaut incorrect par .ssh/nom_goods_rsa)
Ajouter la clé à Herokheroku keys:add
Sélectionner une clé créée dans une liste
Allez dans le répertoire de votre application, écrivez du beau code
Lancer un repo git git init
git add .
git commit -m 'chore(release): v0.0.1
Créer une application Herokheroku create
Déployez votre application git Push heroku master
Ouvrez votre application heroku open
vous devez créer une nouvelle clé ssh en tapant ce qui suit - ssh-keygen -t rsa
Ensuite, vous devez ajouter: - Heroku keys: add
Ensuite, si vous tapez - heroku open
Le problème a été résolu.
Cela a fonctionné pour moi de toute façon, vous pouvez l'essayer ...
Avait un problème similaire, et essayé beaucoup de choses. En fin de compte, ce qui a fonctionné pour moi a été d’installer Gnu sous Windows ( https://github.com/bmatzelle/gow/releases ) et de s’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 PATH de votre environnement qu’il précède Git\bin)
C:\Git\htest2>which ssh
C:\Program Files (x86)\Gow\bin\ssh.BAT
J'ai utilisé PuTTY et 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:\Utilisateurs\Personne.ssh\id_rsa.pub), utilisez
ssh -v <username>@heroku.com
et assurez-vous que votre pile montre l'utilisation de PuTTY - c'est-à-dire une pile qui fonctionne:
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 a échoué:
C:\Git\htest2>ssh -v <username>@[email protected]
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).
J'ai 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
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
Ensuite, je corrige l'erreur.
J'utilise cette méthode pour résoudre ce problème Peut-être que vous pouvez l'essayer
"Activer ssh-agent"
Installez-le
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 vue ici. Mon problème était que heroku liait à la mauvaise URL (puisque je continuais à jouer avec les noms d'URL). La modification de l'URL distante a résolu mon problème:
git remote set-url heroku <heroku-url-here>
SO So So So solution simple, allez à c: /Users/nom_utilisateur/.ssh/ et supprimez toutes les paires de clés pub/private, de cette manière heroku générera des clés pour vous.
J'ai eu une erreur similaire heroku ssh que je ne pouvais pas résoudre.
Pour contourner le problème, j'ai utilisé la nouvelle fonctionnalité heroku http-git (transport HTTP pour "heroku" à la place de ssh). Détails ici: https://devcenter.heroku.com/articles/http-git
(Version courte: si un projet est déjà configuré de manière standard, lancez heroku git: remote --http-init pour remplacer "heroku" remote par http.)
Une bonne solution rapide si vous n’avez pas le temps de résoudre/résoudre un problème SSH.
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 cela n'a toujours pas fonctionné. Car c'était 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. Cochez cette question pour plus d’informations: problème d’application Heroku Push