web-dev-qa-db-fra.com

Plusieurs comptes Heroku

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?

91
Erik

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.

162
bantic

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/

35
Louis Gillies

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

Cela fonctionne comme ceci (en utilisant git):

  1. Le propriétaire du projet se rend sur la console de 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 met en place sa clé de sécurité publique sur son compte (s'il ne l'a pas déjà fait)
  4. Le collaborateur ajoute et configure l'autre projet comme une autre télécommande

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.

7
Bastes

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.

  1. Vous devez probablement utiliser le plugin pour créer vos anciens et vos nouveaux comptes, par exemple, si vous en aviez un pour commencer, vous ne pouvez pas simplement ajouter un nouveau heroku.personal, vous devez créer heroku.work pour remplacer votre ancien
  2. Vous devrez réaffecter vos anciennes applications à votre heroku.work
  3. si vous déplacez une application, n'affectez pas l'application à heroku.personal (en utilisant 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-apps

Les étapes dont vous avez probablement besoin sont donc:

  1. Installez le plugin de compte Heroku
  2. Allez sur heroku.com et créez votre nouveau compte (si vous n'avez pas déjà un deuxième compte)
  3. courir 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
  4. courir 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
  5. Pour chaque application, accédez à la racine du projet, puis exécutez 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.
  6. Si vous souhaitez 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, 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.

6
jpwynn

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

5
James Roscoe

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.

2
linojon

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

1
Deepika Anand

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
1
funroll

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/*
1
jamespaden

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

0
John

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.

0
kbjerring

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

0
mehdok