Je suis nouveau sur Rails et j'essayais de déployer une application très simple sur Heroku. C'est la deuxième application que je déploie et la première que j'ai pu faire très bien. 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 ", j'obtiens:
Aucune clé pour myemailaddress.
Cependant, si j'exécute la commande " touches heroku: ajoutez " je reçois
Clé publique existante trouvée: /Users/michele/.ssh/id_rsa.pub Téléchargement de la clé publique ssh /Users/michele/.ssh/id_rsa.pub! L'empreinte digitale existe 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! Je vous remercie
heroku logout
, je me suis connecté à l'autre compte et j'ai supprimé la clé RSA par défaut de ce compte. Après cela, j'ai pu pousser avec cette clé nouvellement générée.ssh-add ~/.ssh/id_rsa_heroku
mienssh-add ~/.ssh/identity.heroku.foo
parce que j'utilise également https://github.com/ddollar/heroku-accounts (un gestionnaire de comptes multiples pour Heroku).Moi aussi, j'ai plusieurs clés et plusieurs comptes heroku, donc je rencontre ce problème tous les quelques mois. Comme mentionné Giordano Scalzo, Tom Carchrae et user664833, le principal problème est ssh-agent, que vous contrôlez à l'aide de la
ssh-add
commande. La page de manuel (man ssh-add
) est en fait assez claire et concise, alors vérifiez-la.Vous pouvez lister toutes les clés que ssh-agent connaît avec:
Vous pouvez supprimer toutes les clés que ssh-agent connaît avec:
Ou supprimez une clé spécifique avec
Ne t'inquiète pas! Vous ne supprimez pas réellement les clés, vous ne changez que celles que ssh-agent essaie d'utiliser automatiquement, par exemple, lorsque vous essayez de pousser vers heroku. Il est facile d'ajouter et de supprimer des clés au besoin, donc pour moi, lorsque je suis frustré par ce problème, le moyen le plus simple de le résoudre est de supprimer toutes les clés et de ne rajouter que celle que je souhaite utiliser pour le moment.
la source
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 machine et la télécharger sur Heroku:
Assurez-vous de l'enregistrer sous '/Users/User/.ssh/new_id_rsa.pub' lorsque l'invite vous le demande.
Vous devez ensuite ajouter un autre hôte
heroku.com
à votre~/.ssh/config
:Et puis mettez à jour le
.git/config
dans votre projet pour utiliser l'alias d'hôte:En choisissant entre
heroku
etheroku-alt
à distance des.git/config
fichiers de projets spécifiques, vous pouvez gérer quels projets utilisent quelles informations d'identification.la source
Host heroku-alt not found: 3(NXDOMAIN)
. Je mets ça dans le terminal sur Mountain Lion.~/.ssh/config
n'existe pas non plus, juste un tas de.pub
fichiers et un appeléknown_hosts
. Et des idées?Host
,HostName
et lesIdentityFile
lignes. Cela devrait alors fonctionner correctement.Voici une explication très claire qui manque dans la documentation Heroku ou dans d'autres réponses à la question. Au moins, toutes les informations ne semblent pas apparaître à un seul endroit. Cela vous permet également de comprendre le problème d'une manière que ne fait pas l'outil de comptabilité.
Heroku vous identifie de 2 manières:
Le premier est en .git / config
Cela semble vous permettre d'effectuer des opérations de base en utilisant
heroku
La deuxième façon dont heroku vous identifie est par toute opération qui utilise ssh (git push). Heroku vous identifiera par votre clé ssh, comme indiqué ici: https://devcenter.heroku.com/articles/keys
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é est de 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 interceptera et reconfigurera. Cela indiquera à ssh le domaine «réel» que vous voulez, et la clé spéciale ssh à utiliser.
2) Changez votre .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 .ssh / config
Voilà :) Un peu compliqué et un peu simple à la fois. Il m'a fallu 3 ans pour me cogner la tête contre le mur et faire des essais et des erreurs pour découvrir cette info. Cela devrait être clairement documenté quelque part, mais au moins c'est un début.
la source
vous devrez créer de nouvelles clés et les ajouter
spécifier un nouveau nom de fichier après l'exécution
alors (dans mon cas)
la source
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
la source
Dans mon cas,
heroku keys
j'avais déjà la bonne clé répertoriée. Donc, tout ce que j'avais à faire était de courirssh-add /path/to/that/key
et tout a commencé à bien fonctionner.la source
J'ai également deux comptes Heorku et pour contourner le problème, j'ai "invité" mon compte principal (celui dont la clé est utilisée automatiquement par Heroku) en tant que collaborateur de mon projet.
la source
Je veux juste ajouter la solution pour les utilisateurs de Windows.
Téléchargez d'abord "Putty Key Generator"
Créez une clé avec elle OBS dont vous avez besoin pour déplacer votre souris sur la zone vide pour générer un caractère aléatoire.
Enregistrez vos clés, rappelez-vous simplement de renommer votre clé en [nom] .pub
Courez
heroku keys:add
dans le terminal!la source
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 a fonctionné correctement pour moi.
la source