Je suis nouveau chez Rails et j'essayais de déployer une application très simple pour Heroku. Ceci est la deuxième application que je déploie, et la première que j'ai pu très bien faire. Cependant, j'ai quelques problèmes avec celui-ci. Chaque fois que je "git Push heroku master", j'obtiens cette erreur:
! Votre clé avec empreinte digitale xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx: xx n'est pas autorisée à> accéder à my_heroku_app.
fatal: l'extrémité distante a raccroché de manière inattendue
J'ai essayé de gérer mes clés après m'être connecté à heroku. Si je tape dans ma console "heroku keys", alors je reçois:
Pas de clé pour myemailaddress.
Cependant, si je lance la commande "clés Heroku: add" Je reçois
Clé publique existante trouvée: /Users/michele/.ssh/id_rsa.pub Chargement de la clé publique ssh /Users/michele/.ssh/id_rsa.pub! Les empreintes digitales existent déjà. Veuillez utiliser une clé ssh par compte Heroku
Aidez-moi, s'il vous plaît! C'est tellement frustrant, je n'ai aucune idée de ce qui ne va pas! Merci
J'ai eu le même problème, j'ai suivi ce post et d'autres du même genre sans succès: - ((
Enfin, j'ai trouvé la solution: j'ai dû ajouter ma nouvelle identité RSA dans ma machine!
Donc, tout d’abord, j’ai créé une nouvelle clé RSA:
ssh-keygen -t rsa -C "giordano.scalzo[at]gmail.com" -f ~/.ssh/id_rsa_heroku
puis l'ajouté à ma machine
ssh-add ~/.ssh/id_rsa_heroku
et, enfin, à Heroku
heroku keys:add ~/.ssh/id_rsa_heroku.pub
Après ça,
git Push heroku master
travaillé comme un charme!
J'espère que cela t'aides.
Moi aussi, j'ai plusieurs clés et plusieurs comptes heroku, alors je tombe sur ce problème tous les quelques mois. Comme mentionné, Giordano Scalzo, Tom Carchrae et user664833, le problème principal est ssh-agent, que vous contrôlez à l'aide de la commande ssh-add
commande. La page de manuel (man ssh-add
) est en fait assez clair et concis, alors vérifiez-le.
Vous pouvez lister toutes les clés connues de ssh-agent avec:
ssh-add -l
Vous pouvez supprimer toutes les clés connues de ssh-agent avec:
ssh-add -D
Ou supprimez une clé spécifique avec
ssh-add -d ~/.ssh/id_rsa_example_key_file_use_your_own
Ne t'inquiète pas! Vous ne supprimez pas réellement les clés, vous ne changez que celles que ssh-agent essaie automatiquement d'utiliser, par exemple, lorsque vous essayez de pousser vers heroku. Il est facile d'ajouter et de supprimer des clés selon les besoins. Par conséquent, lorsque je suis frustré par ce problème, le moyen le plus simple de le résoudre consiste à supprimer toutes les clés et à ne rajouter que celles que je souhaite utiliser pour le moment.
ssh-add -D
ssh-add ~/.ssh/id_rsa_example_use_this_one_i_mean_it
Votre ordinateur possède une clé SSH, mais cette clé SSH est associée à un autre compte Heroku.
Si vous devez utiliser les deux comptes pour différentes applications sur le même ordinateur, vous devez créer une nouvelle clé SSH sur votre ordinateur et la télécharger sur Heroku:
$ ssh-keygen
Assurez-vous de l'enregistrer sous '/Users/User/.ssh/new_id_rsa.pub' lorsque l'invite vous le demande.
$ heroku keys:add /Users/User/.ssh/new_id_rsa.pub
Vous devez ensuite ajouter un autre hôte pour heroku.com
à ton ~/.ssh/config
:
Host heroku-alt
HostName heroku.com
IdentityFile ~/.ssh/new_id_rsa
Et puis mettez à jour le .git/config
dans votre projet pour utiliser l'alias de l'hôte:
[remote "heroku"]
url = git@heroku-alt:myapp.git
fetch = +refs/heads/*:refs/remotes/heroku/*
En choisissant entre heroku
et heroku-alt
dans la télécommande du .git/config
fichiers de projets spécifiques, vous pouvez gérer quels projets utilisent quelles informations d'identification.
Voici une explication très claire qui manque à la documentation Heroku ou à d’autres réponses à la question. Au moins toutes les informations ne semblent pas apparaître à un endroit donné. Cela vous permet également de comprendre le problème d’une manière différente de l’outil des comptes.
Heroku vous identifie de 2 manières:
Le premier est dans .git/config
[heroku]
account = acccount_name
Cela semble vous permettre d'effectuer des opérations de base en utilisant heroku
La deuxième façon dont heroku vous identifie consiste à utiliser n'importe quelle opération utilisant ssh (git Push). Heroku vous identifiera par votre clé ssh, comme indiqué ici: https://devcenter.heroku.com/articles/keys
Cette paire de clés est utilisée pour la cryptographie forte et vous identifie de manière unique en tant que développeur lors de la modification de code.
Ainsi, chaque compte heroku sur lequel vous travaillez devra envoyer une clé différente à heroku lors de l'utilisation de ssh. Suivez n'importe quel tutoriel pour créer vos clés ssh.
La clé consiste à faire en sorte que SSH utilise différentes clés pour chaque compte Heroku. Comment configurez-vous cela? Vous devrez faire 2 choses:
1) Vous devrez créer un domaine "factice" que votre .ssh/config va intercepter et reconfigurer. Cela indiquera à ssh le domaine "réel" que vous voulez et la clé ssh spéciale à utiliser.
Host heroku.my_unique_key
HostName heroku.com
IdentityFile ~/.ssh/identity.heroku.my_unique_key
IdentitiesOnly yes
2) Changez votre fichier .git/config pour l’utiliser lorsque vous utilisez git Push. Au lieu de heroku.com, utilisez le domaine factice que vous avez défini dans votre fichier .ssh/config.
[remote "heroku"]
url = [email protected]
[remote "heroku"]
url = [email protected]_unique_key:myapp.git
C'est ça :) Un peu compliqué et un peu simple à la fois. Il m'a fallu 3 ans de frapper ma tête contre le mur et d'essais et d'erreurs pour découvrir cette info. Cela devrait être clairement documenté quelque part, mais au moins c'est un début.
vous devrez créer de nouvelles clés et ajouter celles
spécifier un nouveau nom de fichier après avoir exécuté
ssh-keygen
alors (dans mon cas)
heroku keys:add /home/alex/.ssh/alex_heroku_rsa.pub
Dans mon cas, heroku keys
avait déjà la bonne clé listée. Donc, tout ce que je devais faire était de courir ssh-add /path/to/that/key
puis tout a bien fonctionné.
J'ai le même problème la semaine dernière. Ce lien m'a aidé. J'espère que cela vous aide un peu. http://devcenter.heroku.com/articles/keys
J'ai également deux comptes Heroku et, en guise de solution de contournement, j'ai "invité" mon compte principal (celui dont la clé est utilisée automatiquement par Heroku) en tant que collaborateur de mon projet.
Il suffit de ne pas ajouter la solution pour les utilisateurs Windows.
Premier téléchargement "Générateur de clé PuTTY"
Créez une clé avec OBS, vous devez déplacer votre souris dans la zone vide pour générer de l’aléatoire.
Sauvegardez vos clés, n’oubliez pas de renommer votre clé en [nom] .pub
Courir heroku keys:add
dans le terminal!
Dans mon cas, le problème était la version ssh que j'utilisais. Je viens de définir la variable d'environnement GIT_SSH sur une autre ("GIT_SSH =/usr/bin/ssh") et tout s'est bien passé pour moi.