Несколько аккаунтов героку - PullRequest
91 голосов
/ 12 января 2011

У меня проблемы при работе с несколькими учетными записями Heroku на моем компьютере.

Дело в том, что раньше он работал великолепно, переключая учетные записи с помощью драгоценного камня heroku.Но теперь (хотя я сгенерировал новые ключи SSH) это не будет работать.

Когда я делаю git push heroku master, он просто говорит:

my@email.com не авторизованполучить доступ к my_app_name

У кого-нибудь есть какие-либо советы о том, как я могу решить эту проблему?

Ответы [ 13 ]

162 голосов
/ 13 января 2012

Вам необходимо убедиться, что вы используете правильный ключ ssh.

Способ сделать это (и способ, которым плагин учетных записей heroku запрашивает у вас) - добавить раздел в файл конфигурации ssh в ~/.ssh/config.Например, для моей рабочей учетной записи heroku у меня есть это в моей конфигурации ssh:

Host heroku.work
  HostName heroku.com
  IdentityFile ~/.ssh/id_heroku_work_rsa
  IdentitiesOnly yes

Теперь, и это очень важно, вы должны убедиться, что ваш git remote настроен на использование , чтоодноименный хост .В данном случае это heroku.work .Обычно это будет heroku.com, если вы используете heroku только с одной учетной записью.

Поэтому вам нужно отредактировать git remote (вы можете сделать это в файле .git/config вашего репозитория на вашеммашина).Измените файл так, чтобы он выглядел следующим образом:

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

Обратите внимание на героку. работа , а не героку. com , и замените именем вашего приложения.(ака ваше имя репо) на героку.

35 голосов
/ 01 марта 2011

Я решил это с помощью плагина heroku-account

см. Здесь инструкции

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

7 голосов
/ 10 мая 2011

Вы должны быть приняты в качестве соавтора в проекте, который вам не принадлежит.

Это работает так (с помощью git):

  1. Владелецпроект отправляется на консоль heroku для проекта
  2. Владелец добавляет адрес электронной почты соавтора (тот, который использовался для регистрации соавтора)
  3. Соавтор устанавливает свой открытый ключ безопасности в своемучетная запись (если он еще этого не сделал)
  4. Соавтор добавляет и настраивает другой проект как другой удаленный

И это должны быть все люди;вам просто нужно нажать на другой пульт при развертывании в другом приложении.

6 голосов
/ 16 октября 2012

Я бы добавил пару вещей к плагину heroku-account ... в этом примере предполагается, что ваша ранее существующая учетная запись heroku будет heroku.work, а вы добавляете новую учетную запись heroku.personal.

Здесь также описывается, как переместить приложение из одного в другое, например, если вы достигли максимума в 25 приложений и создаете новую учетную запись и хотите перенести некоторые из своих побочных проектов и экспериментальныхприложения из вашей основной учетной записи.

  1. Возможно, вам понадобится использовать плагин для создания ОБА старой и новой учетных записей, например, если у вас была одна для начала, вы не можете просто добавить новуюheroku.personal, вам нужно создать heroku.work для замены старого
  2. Вам нужно будет переназначить свои старые приложения на heroku.work
  3. , если вы двигаетесь приложение, не назначайте приложение heroku.personal (используя heroku accounts:set personal) до тех пор, пока после вы не перенесете приложение с помощью команды heroku sharing, как описано https://devcenter.heroku.com/articles/transferring-apps

Итак, шаги, которые вам, вероятно, нужны:

  1. Установите плагин heroku-account
  2. Перейдите на heroku.com и создайте новую учетную запись (если у вас еще нет второй учетной записи)
  3. запустите heroku accounts:add work --auto, чтобы создать новую учетную запись heroku.work для замены старой учетной записи по умолчанию (поэтому используйте те же учетные данные, которые вы использовали все это время).Вам также необходимо загрузить новый ключ в heroku: heroku keys:add ~/.ssh/identity.heroku.work.pub
  4. запустить heroku accounts:add personal --auto, чтобы создать новую учетную запись heroku.personal (например, использовать новые учетные данные для новой учетной записи heroku).Вам также необходимо загрузить новый ключ в heroku: heroku keys:add ~/.ssh/identity.heroku.personal.pub
  5. Для каждого приложения перейдите в корневой каталог проекта и запустите heroku accounts:set work (все, что делает его настройкой git для использования heroku.work, что(в этом примере) тот же аккаунт heroku, который вы использовали все время, только теперь он называется heroku.work.
  6. Если вы хотите переместить приложение из heroku.work в heroku.personal, (a)добавьте новую учетную запись heroku в качестве соавтора с heroku sharing:add <new owner email> (b) в локальном каталоге, переключите приложение на heroku.personal с помощью heroku accounts:set personal (c) перенесите ** приложение из старой учетной записи в новую учетную запись, используя heroku sharing:transfer <new owner email> затем (d) удалите старый адрес электронной почты соавтора (если хотите), используя heroku sharing:remove <old owner email>

** Обратите внимание, что предоставленная мной ссылка на heroku говорит, что существуют особые требования для перемещения приложения с любой платнойКак правило, удалите платные ресурсы, затем добавьте их позже или обратитесь в службу поддержки.

5 голосов
/ 24 сентября 2015

Плагин Heroku https://github.com/ddollar/heroku-accounts устарел. Heroku теперь поддерживает свою собственную на https://github.com/heroku/heroku-accounts. К сожалению, похоже, что не сохраняется индивидуальный проект, какую учетную запись он должен использовать, поэтому вам нужно запустить

$ heroku accounts:set account_name

каждый раз, когда вы хотите использовать инструмент командной строки Heroku.

Быстрое решение для людей с доступом к оболочке bash: создайте локальный каталог bin (он уже есть в приложениях Rails) и создайте там bin / heroku. Содержание:

#!/bin/bash
/usr/bin/heroku accounts:set account_name
/usr/bin/heroku $*

(при необходимости замените "имя_проекта"). Затем выполните

$ chmod + x bin / heroku

Затем вы можете запустить

$ bin / heroku run console

, и он будет автоматически использовать нужную учетную запись Heroku для вас. Еще лучше добавить ./bin к вашему пути, чтобы вы снова начали:

$ heroku run console

2 голосов
/ 25 ноября 2012

Я начал использовать плагин heroku-account, но потом понял, что мой друг может просто сделать меня соавтором в его аккаунте heroku, и это было все, что было нужно.

1 голос
/ 30 марта 2017

Я использовал nano .git / config, затем заменил значение URL удаленной "heroku" на heroku.com> приложения> настройки> Показать конфигурационные параметры> Heroku Git URL

1 голос
/ 02 октября 2014

Меня это некоторое время беспокоило, и я так и не нашел решение, которое мне понравилось. Наконец нашел один.

(специальный ответ для OS X)

Вы можете просто создавать новых пользователей. Перейдите в Системные настройки -> Пользователи и группы -> Добавить пользователя или кнопку группы. Вы можете создать несколько пользователей для разных учетных записей heroku, я просто назвал мои user1, user2 и т. Д.

Затем перейдите в Системные настройки -> Общий доступ -> Удаленный вход в систему -> Разрешить доступ для: всех пользователей

На этом этапе вы можете перейти к терминалу и сделать следующее:

$ ssh user1@localhost

Тогда вы можете делать такие вещи:

$ heroku login
$ heroku keys:add
1 голос
/ 26 мая 2013

Чтобы это работало для меня как с Git, так и с консолью Heroku, мне нужно было добавить конфигурацию ssh в соответствии с инструкциями bantic, но мне также пришлось создать два пульта в моей конфигурации .git:

[remote "origin"]
  url = git@heroku.work:pacific-rock-4904.git
  fetch = +refs/heads/*:refs/remotes/heroku/*
[remote "heroku"]
  url = git@heroku.com:pacific-rock-4904.git
    fetch = +refs/heads/*:refs/remotes/heroku/*
0 голосов
/ 26 мая 2014

создайте новый открытый / закрытый ключ для новой электронной почты следующим образом

1) ssh-keygen -t rsa -C "mvjohn@klairvoynat.com"

2) укажите новое имя файла для сохранения ключа (/home/.ssh/seckey)

3) Затем добавьте ваш новый ключ в ssh-agent: - ssh-add ~ / .ssh / seckey

4) Затем добавьте свой новый ключ к героку: - ключи герою: добавьте ~ / .ssh / seckey

5) добавить файл конфигурации SSH в виде ~ / .ssh / config и содержимое следующим образом

Хост heroku.com Имя хоста heroku.com Порт 22 Личность только да IdentityFile ~ / .ssh / seckey Пользователь mvjohn@klairvoynat.com

Хост heroku.com Имя хоста heroku.com Порт 22 Личность только да IdentityFile ~ / .ssh / id_rsa Пользователь mvjohn@hotmail.com

6) клонировать код, используя либо

а) git clone git@heroku.com: your-application.git б) героку мерзавца: клон -a ваше-приложение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...