Je rencontre des problèmes lorsque je travaille avec plusieurs comptes Heroku sur mon ordinateur.
Le fait est que cela fonctionnait très bien avant en changeant de compte avec la gemme Heroku. Mais maintenant (même si j'ai généré de nouvelles clés SSH) cela ne fonctionnera pas.
Quand je fais un git Push heroku master
ça dit juste:
[email protected] non autorisé à accéder à my_app_name
Quelqu'un a-t-il des conseils sur la façon de résoudre ce problème?
Vous devez vous assurer que vous utilisez la bonne clé ssh.
La façon de le faire (et la façon dont le plugin de comptes Heroku vous y invite) consiste à ajouter une section à votre fichier de configuration ssh dans ~/.ssh/config. Par exemple, pour mon compte Heroku professionnel, je l'ai dans ma configuration ssh:
Host heroku.work
HostName heroku.com
IdentityFile ~/.ssh/id_heroku_work_rsa
IdentitiesOnly yes
Maintenant, et c'est crucial, vous devez vous assurer que votre télécommande git est configurée pour utiliser le même hôte nommé. Dans ce cas, c'est heroku.work. Normalement, ce serait heroku.com si vous utilisiez heroku avec un seul compte.
Vous devrez donc modifier la télécommande git (vous pouvez le faire dans le .git/config
fichier de votre repo sur votre machine). Modifiez le fichier pour qu'il ressemble à:
[remote "heroku"]
url = [email protected]:<appname>.git
Notez l'heroku .travail, pas heroku .com, et remplacez <appname> par le nom de votre application (alias votre nom de dépôt) sur heroku.
J'ai résolu cela en utilisant le plugin heroku-accounts
voir ici pour les instructions
http://martyhaught.com/articles/2010/12/14/managing-multiple-heroku-accounts/
Vous devez être accepté comme collaborateur sur le projet que vous ne possédez pas.
Cela fonctionne comme ceci (en utilisant git):
Et cela devrait être tout le monde; il vous suffit d'appuyer sur l'autre télécommande lors du déploiement sur l'autre application.
J'ajouterais quelques éléments concernant le plugin heroku-accounts ... cet exemple suppose que votre compte heroku préexistant sera heroku.work et que vous ajoutez un nouveau compte heroku.personal.
Il décrit également comment déplacer une application de l'une à l'autre, par exemple, si vous avez atteint votre maximum de 25 applications et créez un nouveau compte et que vous souhaitez déplacer certains de vos projets parallèles et applications expérimentales hors de votre compte principal.
heroku accounts:set personal
) jusqu'à après vous transférez l'application en utilisant la commande heroku sharing
comme décrit https: //devcenter.heroku .com/articles/transfer-appsLes étapes dont vous avez probablement besoin sont donc:
heroku accounts:add work --auto
pour créer un nouveau compte heroku.work pour remplacer votre ancien compte par défaut (utilisez donc les mêmes informations d'identification que vous avez toujours utilisées). Vous devez également télécharger votre nouvelle clé sur heroku: heroku keys:add ~/.ssh/identity.heroku.work.pub
heroku accounts:add personal --auto
pour créer un nouveau compte heroku.personal (par exemple, utilisez vos nouvelles informations d'identification pour votre nouveau compte heroku). Vous devez également télécharger votre nouvelle clé sur heroku: heroku keys:add ~/.ssh/identity.heroku.personal.pub
heroku accounts:set work
(tout cela permet de configurer git pour utiliser votre heroku.work, qui est (dans cet exemple) le même compte heroku que vous avez utilisé depuis le début, seulement maintenant il s'appelle heroku.work.heroku sharing:add <new owner email>
(b) dans votre répertoire local, basculez l'application sur heroku.personal en utilisant heroku accounts:set personal
(c) transférez ** l'application de l'ancien compte vers le nouveau compte à l'aide de heroku sharing:transfer <new owner email>
puis (d) supprimer l'ancien collaborateur d'adresse e-mail (si vous le souhaitez) à l'aide de heroku sharing:remove <old owner email>
** Notez que le lien Heroku que j'ai fourni indique qu'il existe des exigences particulières pour déplacer une application avec des ressources payantes. En règle générale, supprimez les ressources payées, puis ajoutez-les plus tard, ou demandez à l'assistance de le faire.
Le plugin Heroku https://github.com/ddollar/heroku-accounts est obsolète. Heroku maintient maintenant le sien à https://github.com/heroku/heroku-accounts . Malheureusement, il ne semble pas stocker projet par projet le compte qu'il doit utiliser, vous devez donc exécuter
$ heroku accounts:set account_name
chaque fois que vous souhaitez utiliser l'outil de ligne de commande Heroku.
Solution rapide pour les personnes ayant accès au shell bash: créer un répertoire bin local (il est déjà là dans Rails applications) et y créer bin/heroku. Contenu:
#!/bin/bash
/usr/bin/heroku accounts:set account_name
/usr/bin/heroku $*
(remplacez "project_name" selon le cas) Ensuite, exécutez
$ chmod + x bin/heroku
Vous pouvez ensuite exécuter
$ bin/heroku run console
et il utilisera automatiquement le bon compte Heroku pour vous. Mieux encore, vous devez ajouter ./bin à votre chemin pour que vous puissiez recommencer à courir:
$ heroku run console
J'ai commencé à utiliser le plugin Heroku-Accounts, mais j'ai réalisé que mon copain pouvait simplement faire de moi un collaborateur sur son compte Heroku et c'était tout ce qu'il fallait.
J'ai utilisé nano .git/config puis remplacé la valeur de l'URL de la télécommande "heroku" par heroku.com> apps> settings> Reveal config vars> Heroku Git URL
Cela me dérange depuis un moment et je n'ai jamais trouvé de solution que j'aimais. Enfin trouvé un.
(Réponse spécifique à OS X.)
Vous pouvez simplement créer de nouveaux utilisateurs. Allez dans Préférences Système -> Utilisateurs et groupes -> Bouton Ajouter un utilisateur ou un groupe. Vous pouvez créer quelques utilisateurs pour différents comptes Heroku, je viens de nommer le mien user1, user2, etc.
Ensuite, allez dans Préférences Système -> Partage -> Connexion à distance -> Autoriser l'accès pour: Tous les utilisateurs
À ce stade, vous pouvez vous rendre sur un terminal et effectuer les opérations suivantes:
$ ssh user1@localhost
Ensuite, vous pouvez faire des choses comme ça:
$ heroku login
$ heroku keys:add
Pour que cela fonctionne pour moi avec Git et la console Heroku, j'ai dû ajouter créer la configuration ssh comme indiqué par bantic, mais j'ai également dû créer deux télécommandes dans ma configuration .git:
[remote "Origin"]
url = [email protected]:pacific-rock-4904.git
fetch = +refs/heads/*:refs/remotes/heroku/*
[remote "heroku"]
url = [email protected]:pacific-rock-4904.git
fetch = +refs/heads/*:refs/remotes/heroku/*
créer une nouvelle clé publique/privée pour le nouvel e-mail comme suit
1) ssh-keygen -t rsa -C "[email protected]"
2) fournir un nouveau nom de fichier dans lequel enregistrer la clé (/home/.ssh/seckey)
3) Ajoutez ensuite votre nouvelle clé à l'agent ssh: - ssh-add ~/.ssh/seckey
4) Ajoutez ensuite votre nouvelle clé à heroku: - clés heroku: ajoutez ~/.ssh/seckey
5) Ajoutez le fichier de configuration SSH en tant que ~/.ssh/config et le contenu comme suit
Hôte heroku.com Nom d'hôte heroku.com Port 22 IdentitiesOnly yes IdentityFile ~/.ssh/seckey User [email protected]
Hôte heroku.com Nom d'hôte heroku.com Port 22 IdentitiesOnly yes IdentityFile ~/.ssh/id_rsa User [email protected]
6) cloner le code en utilisant soit
a) git clone [email protected]: votre-application.git b) heroku git: clone -a votre-application
J'ai exactement le même problème.
Ce n'est pas la réponse, mais une solution temporaire consiste à ajouter votre e-mail heroku "standard" en tant que collaborateur à l'application à laquelle vous ne pouvez pas accéder.
j'utilise win7
1) créez un autre compte utilisateur dans win7 et connectez-vous
2) ouvrez git bash et connectez-vous à votre nouveau compte heroku
3) créer et télécharger une nouvelle clé RSA (instruction ici: https://devcenter.heroku.com/articles/keys )
4) puis faites ce que vous voulez (créez une nouvelle application, envoyez-y un fichier Push .....)
5) Chaque fois que vous devez travailler avec votre compte Heroku d'origine, connectez-vous simplement à votre compte utilisateur Win d'origine et travaillez avec Heroku