95 votes

Comptes heroku multiples

J'ai des problèmes lorsque je travaille avec plusieurs comptes Heroku sur mon ordinateur.

Le truc, c'est que ça marchait très bien avant en changeant de compte avec la gemme heroku. Mais maintenant (bien que j'aie généré de nouvelles clés SSH), cela ne fonctionne pas.

Quand je fais un git push heroku master ça dit juste :

my@email.com n'est pas autorisé à accéder à mon_app_name

Quelqu'un a-t-il des conseils à me donner pour résoudre ce problème ?

0 votes

Que donne ssh yourid@server -v ?

0 votes

"Permission refusée (clé publique)." ?

0 votes

Oh, une remarque L'e-mail "my@email.com" n'est pas le même que celui du compte Heroku il semble donc qu'il y ait une sorte de confusion qui cause le problème.

164voto

bantic Points 2417

Vous devez vous assurer que vous utilisez la bonne clé ssh.

La façon de procéder (et la façon dont le plugin heroku accounts vous y invite) est d'ajouter une section à votre fichier de configuration ssh dans ~/.ssh/config. Par exemple, pour mon compte heroku professionnel, j'ai ceci 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 ce même hôte nommé . Dans ce cas, il s'agit heroku.work . Normalement, ce serait heroku.com si vous utilisiez heroku avec un seul compte.

Vous devrez donc modifier le fichier git distant (vous pouvez le faire dans le fichier .git/config de votre repo sur votre machine). Changez le fichier pour qu'il ressemble à :

 [remote "heroku"]
   url = git@heroku.work:<appname>.git

Notez l'heroku. travail pas heroku. com et remplacez <appname> par le nom de votre application (alias le nom de votre repo) sur heroku.

1 votes

Thx, c'est ce dont j'avais besoin lorsque j'ai créé mon application prod à partir du tableau de bord de heroku.

1 votes

Git@heroku.work... n'existe pas en tant que point d'arrivée, cependant. Comment puis-je faire en sorte que ce soit le point de terminaison à pousser ? -- Ah, vous avez besoin du plugin heroku-accounts.

1 votes

@jmstone Les modifications apportées à .ssh/config faire en sorte que heroku.work se résout à heroku.com

36voto

Louis Gillies Points 366

J'ai résolu ce problème en utilisant le plugin heroku-accounts

voir ici pour les instructions

http://martyhaught.com/articles/2010/12/14/managing-multiple-heroku-accounts/

0 votes

Le plus gros problème de cet outil est qu'il génère des clés SSH non cryptées.

0 votes

Créez vous-même les clés manuellement et ce problème disparaît. cette fiche est parfaite pour cela !

8voto

Bastes Points 318

Vous devez être accepté en tant que collaborateur sur le projet que vous ne possédez pas.

Cela fonctionne comme suit (en utilisant git) :

  1. Le propriétaire du projet va dans la console d'heroku pour le projet
  2. Le propriétaire ajoute l'adresse e-mail du collaborateur (celle qui a été utilisée pour enregistrer celle du collaborateur)
  3. Le collaborateur configure sa clé de sécurité publique dans son compte (si ce n'est pas déjà fait).
  4. Le collaborateur ajoute et configure l'autre projet comme un autre projet distant.

Et cela devrait être tout, il vous suffit de pousser sur l'autre télécommande lors du déploiement sur l'autre application.

0 votes

Merci ! !! J'ai passé des heures à essayer de résoudre ce problème. J'ai même essayé toutes les approches différentes sur SO et d'autres sites. Ajouter le même email aux deux projets sur Heroku est certainement la solution la plus simple.

0 votes

J'ai passé des heures à mettre en place un fichier d'identification et à faire toutes sortes d'astuces pour faire fonctionner les clés multiples, mais cette réponse est de loin le moyen le plus simple de faire fonctionner tout cela. Ajoutez votre compte original comme collaborateur et utilisez la même clé. Facile.

6voto

jpwynn Points 5222

J'ajouterais deux ou trois choses au sujet de la 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'un à l'autre, par exemple, si vous avez atteint votre maximum de 25 applications et que vous créez un nouveau compte et souhaitez déplacer certains de vos projets secondaires et applications expérimentales hors de votre compte principal.

  1. Vous devez probablement utiliser le plugin pour créer à la fois votre ancien et votre nouveau compte, par exemple, si vous en aviez un au départ, vous ne pouvez pas simplement ajouter un nouveau heroku.personal, vous devez créer heroku.work pour remplacer votre ancien compte.
  2. Vous devrez réaffecter vos anciennes applications à votre heroku.work.
  3. si vous êtes déménagement une application, n'assignez pas l'application à heroku.personal (à l'aide de la fonction heroku accounts:set personal ) jusqu'à ce que après vous transférez l'application en utilisant l'heroku sharing commande comme décrit https://devcenter.heroku.com/articles/transferring-apps

Donc les étapes dont vous avez probablement besoin sont :

  1. Installer le plugin heroku-account
  2. Allez sur heroku.com et créez votre nouveau compte (si vous n'avez pas déjà un deuxième compte).
  3. exécuter heroku accounts:add work --auto pour créer un nouveau compte heroku.work à la place de votre ancien compte par défaut (utilisez donc les mêmes informations d'identification que vous utilisiez jusqu'à présent). Vous devez AUSSI télécharger votre nouvelle clé sur heroku : heroku keys:add ~/.ssh/identity.heroku.work.pub
  4. exécuter 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 AUSSI télécharger votre nouvelle clé vers heroku : heroku keys:add ~/.ssh/identity.heroku.personal.pub
  5. Pour chaque application, accédez au projet Root puis exécutez heroku accounts:set work (tout ce que cela fait, c'est de configurer git pour utiliser votre heroku.work, qui est (dans cet exemple) le même compte heroku que vous utilisiez depuis le début, sauf que maintenant il s'appelle heroku.work.
  6. Si vous voulez déplacer une application de heroku.work vers heroku.personal, (a) ajoutez le nouveau compte heroku en tant que collaborateur avec heroku sharing:add <new owner email> (b) dans votre répertoire local, passez l'application à heroku.personal en utilisant heroku accounts:set personal (c) transférer** 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 de l'adresse e-mail (si vous le souhaitez) en utilisant heroku sharing:remove <old owner email>

** Notez que le lien heroku que j'ai fourni indique qu'il y a des exigences spéciales pour déplacer une application avec des ressources payantes. En général, il faut supprimer les ressources payantes, puis les rajouter plus tard, ou demander au support de le faire.

4voto

oma Points 5398

Heroku_plus

J'ai utilisé heroku_plus depuis des années. Je suis surpris de ne pas le voir ici ! J'ai 6 comptes heroku à des fins de facturation (éviter de mélanger les entreprises et les rôles) et j'utilise un compte heroku comme compte de développeur commun, ajouté à toutes les applications en tant que collaborateur. De cette façon, je vois toutes les applications dans une longue liste. Si je dois agir en tant que propriétaire, je fais simplement

$ hp -a -s the_owner_account  

    info  Heroku account switched to: the_owner_account.

Ça marche très bien pour moi. En fait, je l'ai aliasé en

$ heroku_plus the_owner_account

car je n'utilise Heroku_plus que pour changer de compte.

https://github.com/bkuhlmann/heroku_plus

Je suis en train de confier la gestion d'un compte propriétaire à quelqu'un d'autre, c'est pourquoi j'écris ces instructions pour lui.

Hey Champ, tu es génial ! Voici comment vous pouvez gérer plusieurs comptes heroku :

(remplacez l'évident par vos propres mots, par exemple propriétaire_nick)

$ gem install heroku_plus
$ hp -a -c owner_nick

Enter your Heroku login:  the_owner@example.com
Enter your Heroku password:  the_password
        info  Heroku account created: owner_nick.
        info  Heroku account switched to: owner_nick.

$ heroku login

Enter your Heroku credentials.
Email: the_owner@example.com
Password (typing will be hidden): 
Found the following SSH public keys:
1) id_rsa.pub                                            # Note, this is default, this belongs to your existing heroku account
2) owner_nick.pub                                        # This is the new account - auto-created file
Which would you like to use with your Heroku account? 2
Uploading SSH public key /home/oma/.ssh/owner_nick.pub... done
Authentication successful.

Vérifier que ça a marché

$ heroku config --app the_app

# create your default account
$  hp -a -c your_account_nick   

Enter your Heroku login:  your_own_account@examplecom
Enter your Heroku password:  your_password
        info  Heroku account created: your_account_nick.
        info  Heroku account switched to: your_account_nick.

Vérifiez qu'il fonctionne toujours

$ heroku config --app your_app

#Switch back to owner representation
$ hp -a -s owner_nick

    info  Heroku account switched to: owner_nick.

Aliasing

J'ai aliasé le changement de compte, car j'oublie toujours les paramètres et je n'utilise que le changement de compte.

#.zshrc or .profile or .bashrc or ...

alias heroku_plus='echo "hp -a -s" && hp -a -s'

Fait. Retournez au travail !

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