web-dev-qa-db-fra.com

Impossible de transmettre à Heroku en raison de l'empreinte digitale de la clé

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

131
mre

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.

288
Giordano Scalzo

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
61
towynlin

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.

38
Daniel X Moore

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.

14
pixelearth

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
9
alemur

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é.

3
M. Scott Ford

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

3
Benjamin

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.

2
Fabio CR

Il suffit de ne pas ajouter la solution pour les utilisateurs Windows.

  1. Premier téléchargement "Générateur de clé PuTTY"

  2. Créez une clé avec OBS, vous devez déplacer votre souris dans la zone vide pour générer de l’aléatoire.

  3. Sauvegardez vos clés, n’oubliez pas de renommer votre clé en [nom] .pub

  4. Courir heroku keys:add dans le terminal!

1
Rails beginner

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.

0
gfhuertac