131 votes

Ne peut pas pousser à Heroku, car les empreintes digitales clés

Je suis nouveau sur les Rails, et j'étais en train de déployer une application simple à Heroku. C'est la deuxième application que j'déployer, et le premier que j'ai été capable de le faire bien. Cependant, je vais avoir quelques problèmes avec celui-ci. Chaque fois que je "git push heroku maître", 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é à >l'accès my_heroku_app.

fatal: L'extrémité distante accroché de façon inattendue

J'ai essayé de gérer mes clés après la connexion heroku. Si je tape dans ma console "heroku clés", puis-je obtenir:

Pas de touches pour myemailaddress.

Toutefois, Si j'exécute le système comand "heroku clés:ajouter" je obtenir

Trouvé clé publique existante: /Users/michele/.ssh/id_rsa.pub Le téléchargement de clé publique ssh /Utilisateurs/michele/.ssh/id_rsa.pub ! Empreintes digitales existe déjà. Veuillez utiliser une clé ssh par Heroku compte

S'il vous plaît aidez-moi! Ce n'est soo frustating, je n'ai aucune idée de ce qui est mal! Merci

288voto

Giordano Scalzo Points 3658

J'ai eu le même problème, j'ai suivi ce post et d'autres du même genre sans succès: - ((

A la fin, j'ai trouvé la solution: je devais 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 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.

61voto

towynlin Points 578

Moi aussi avoir plusieurs clés et de multiples heroku comptes, donc je viens sur ce problème tous les quelques mois. Comme mentionné Giordano Scalzo, Tom Carchrae, et user664833, le principal problème est de ssh-agent, qui vous contrôle à l'aide de l' ssh-add commande. La page de man (man ssh-add) est en fait assez clair et concis, alors check it out.

Vous pouvez lister toutes les clés ssh-agent connaît avec:

ssh-add -l

Vous pouvez supprimer toutes les clés ssh-agent connaît avec:

ssh-add -D

Ou supprimer une clé spécifique avec

ssh-add -d ~/.ssh/id_rsa_example_key_file_use_your_own

Ne vous inquiétez pas! Vous n'êtes pas réellement supprimer les clés, en changeant seulement de ceux qui ssh-agent tente automatiquement de les utiliser, par exemple, lorsque vous essayez de pousser à heroku. Il est facile d'ajouter et de supprimer des clés comme nécessaire, donc pour moi, quand je suis frustré par ce problème, le plus simple moyen pour résoudre ce problème est de supprimer toutes les clés et de rajouter que dans celui que je veux utiliser pour le moment.

ssh-add -D
ssh-add ~/.ssh/id_rsa_example_use_this_one_i_mean_it

38voto

Daniel X Moore Points 6026

Votre ordinateur est équipé d'une clé SSH, mais que la clé SSH est associé à un autre compte Heroku.

Si vous avez besoin d'utiliser deux comptes pour différentes applications sur le même ordinateur, vous devez faire une nouvelle clé SSH sur votre machine et de les télécharger sur Heroku:

$ ssh-keygen

Assurez-vous de l'enregistrer en tant que '/Users/Utilisateur/.ssh/new_id_rsa.pub " lorsque l'invite vous demande.

$ heroku keys:add /Users/User/.ssh/new_id_rsa.pub 

Vous devez ensuite ajouter un autre hôte pour heroku.com votre ~/.ssh/config:

Host heroku-alt
HostName heroku.com
IdentityFile ~/.ssh/new_id_rsa

Et puis mettre à jour l' .git/config dans votre projet pour utiliser l'alias d'hôte:

[remote "heroku"]
  url = git@heroku-alt:myapp.git
  fetch = +refs/heads/*:refs/remotes/heroku/*

En choisissant l' heroku et heroku-alt de la distance de l' .git/config fichiers de projets spécifiques, vous pouvez gérer les projets qui utilisent les informations d'identification.

14voto

pixelearth Points 2948

Voici un très explication claire qui est manquant à partir de là Heroku de la documentation ou d'autres réponses à la question. Au moins toutes les info ne semble pas apparaître dans un seul endroit. Il vous permet aussi de comprendre le problème d'une manière que les comptes de l'outil ne fonctionne pas.

Heroku vous identifie de 2 façons:

Le premier est dans la .git/config

[heroku]
    account = acccount_name

Cela semble vous permettent d'effectuer des opérations de base à l'aide de heroku

La deuxième façon heroku de vous identifier est une opération qui utilise le protocole ssh (git push). Heroku à vous identifier par votre clé ssh, comme indiqué ici: https://devcenter.heroku.com/articles/keys

Cette paire de clés est utilisé pour la cryptographie forte et unique vous identifie en tant que développeur lors de la poussée des modifications de code.

De sorte que chaque heroku compte que vous travaillez sur devez envoyer une clé différente pour heroku lors de l'utilisation de ssh. Suivez tutoriel pour créer vos clés ssh.

La clé est d'obtenir SSH pour utiliser des clés différentes pour chaque compte Heroku. Comment faites-vous configurer? Vous aurez besoin de faire 2 choses:

1) Vous aurez besoin de faire un "crétin" domaine votre .ssh/config va intercepter et de les reconfigurer. Ceci va dire ssh le "réel" de domaine que vous voulez, et que la clé ssh à utiliser.

Host heroku.my_unique_key
  HostName heroku.com
  IdentityFile ~/.ssh/identity.heroku.my_unique_key
  IdentitiesOnly yes

2) Changer votre .git/config pour l'utilisation que lors de l'utilisation de git push. Au lieu de heroku.com, utilisez le mannequin de domaine que vous définissez dans votre .ssh/config

[remote "heroku"]
    url = git@heroku.com.git


[remote "heroku"]
    url = git@heroku.my_unique_key:myapp.git

C'est tout :) Un peu compliqué et un peu simple en même temps. Il m'a fallu 3 ans de cogner ma tête contre le mur et d'essai et d'erreur pour découvrir cette info. Il doit être clairement documenté quelque part, mais au moins c'est un début.

9voto

Akmur Points 649

youn devra créer de nouvelles clés et ajouter celles-ci

spécifier un nouveau nom de fichier après l'exécution

 ssh-keygen
 

alors (dans mon cas)

 heroku keys:add /home/alex/.ssh/alex_heroku_rsa.pub
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X