Кілька рахунків героку


92

У мене виникають проблеми під час роботи з кількома обліковими записами Heroku на моєму комп’ютері.

Річ у тім, що раніше це чудово працювало, перемикаючи рахунки на самоцвіт heroku. Але зараз (хоча я створив нові SSH-ключі) це не буде працювати.

Коли я роблю, git push heroku masterце просто говорить:

my@email.com не має права доступу до my_app_name

Хтось має якусь пораду, як я міг це вирішити?


що дає ssh yourid @ server -v?
Адам Димітрук,

"Дозвіл відмовлено (відкритий ключ)."?
Ерік,

О, одна примітка ... Електронна пошта "my@email.com" - це не та сама електронна пошта, що і електронна пошта в обліковому записі Heroku ... тому, здається, є якесь змішання, яке спричиняє проблему.
Ерік,

скопіюйте як приватний, так і відкритий ключі під ваш git / .ssh / diectory. це працює для мене!
Дмитро Алгазін

Відповіді:


162

Вам потрібно переконатися, що ви використовуєте правильну клавішу ssh.

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

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 та замініть <appname> на ім'я вашого додатка (він же ваше ім'я репо) на heroku.


1
Thx, це було те, що мені потрібно було, коли я створював свій додаток для випуску з інформаційної панелі heroku.
Бачет

1
git@heroku.work ... проте не існує як кінцева точка. Як зробити так, щоб кінцеву точку потрібно було натиснути? - Ах, вам потрібен плагін heroku-accounts.
jmstone617

1
@jmstone Зміни, щоб .ssh/configзробити це таким, що heroku.workвирішуєheroku.com
bantic

Я, це було ще одне питання з мого кінця, я все зрозумів. Дякую!
jmstone617

Я додав цю сторінку у закладки. Щоразу, коли у мене виникають проблеми з натисканням на Heroku, я читаю цю відповідь і розумію, що мені потрібно зробити.
septerr

36

Я вирішив це за допомогою плагіна heroku-accounts

див. тут інструкції

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


Найбільша проблема цього інструменту полягає в тому, що він генерує незашифровані SSH-ключі.
Вольфрам Арнольд

створіть ключі самостійно вручну, і ця проблема зникне. ця вилка ідеально підходить для цього!
Chris Hough

8

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

Це працює так (за допомогою git):

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

І це повинні бути всі люди; вам просто потрібно натиснути на інший пульт під час розгортання в іншій програмі.


Дякую!!! Я годинами намагався це зрозуміти. Навіть спробувати всі різні підходи на SO та інших сайтах. Додавання однакової електронної пошти до обох проектів на Heroku, безумовно, є найпростішим рішенням.
B Сім

Я витратив віки, створюючи ідентифікаційний файл і роблячи всілякі фокуси, щоб змусити працювати декілька клавіш, але ця відповідь на сьогоднішній день є найпростішим способом зробити цю роботу. Додайте свій оригінальний обліковий запис як співавтора та використовуйте той самий ключ. Легко.
Пітер Ніксі

6

Я б додав пару речей щодо плагіна heroku-accounts ... у цьому прикладі передбачається, що ваш вже існуючий рахунок 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. робота.
  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, яке я надав, говорить про наявність особливих вимог щодо переміщення програми з будь-якими платними ресурсами. Як правило, видаляйте оплачені ресурси, а потім додайте їх пізніше або попросіть підтримку зробити це.


6

Плагін 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

і він автоматично використовуватиме відповідний для вас рахунок Heroku. Краще все-таки додати ./bin до свого шляху, щоб ви знову почали просто запускати:

консоль запуску $ heroku


2

Я почав використовувати плагін heroku-accounts, але потім зрозумів, що мій друг може просто зробити мене співавтором у його акаунті heroku, і це все, що потрібно.


проголосуйте за цей, особливо якщо у вас є пароль для обох облікових записів
portforwardpodcast

1

Щоб це працювало для мене як з Git, так і з консоллю Heroku, мені довелося додати create ssh config за вказівкою bantic, але мені також довелося створити два пульти до мого .git config:

[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/*

1
А потім штовхнути до чого? героку чи походження?
jmstone617

1

Це певний час мене хвилювало, і я так і не знайшов рішення, яке б мені подобалось. Нарешті знайшов один.

(Відповідь на конкретну ОС X.)

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

Потім перейдіть до Системних налаштувань -> Спільний доступ -> Віддалений вхід -> Дозволити доступ для: усіх користувачів

На цьому етапі ви можете перейти до терміналу і зробити наступне:

$ ssh user1@localhost

Тоді ви можете робити такі речі:

$ heroku login
$ heroku keys:add

Це здається ідеальним, але чи можна надати різним користувачам ssh доступ до одних і тих же папок і файлів?
Fellow Stranger

1

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


0

У мене точно така ж проблема.

Це не відповідь, але тимчасовим рішенням є додавання вашої "стандартної" електронної пошти heroku як співавтора до програми, до якої ви не можете отримати доступ.


На жаль, я забув про подальші дії, але перезавантаження комп’ютера вирішило проблему. Можливо, не вирішить вашого.
Ерік,

Так, я теж про це читав. У мене це не спрацювало.
kbjerring

0

я використовую win7

1) створити ще один обліковий запис користувача в win7 і увійти в нього

2) відкрийте git bash і увійдіть у свій новий рахунок heroku

3) створити та завантажити новий ключ RSA (інструкція тут: https://devcenter.heroku.com/articles/keys )

4) тоді робіть усе, що завгодно (створіть нову програму, натисніть на неї файл .....)

5) кожного разу, коли вам потрібно працювати з вашим початковим акаунтом heroku, просто увійдіть до свого оригінального акаунта користувача win і працюйте з heroku


Я б не рекомендував цього - необхідність перемикання локальних облікових записів ПК є надмірною, коли нижче є кращі рішення.
Rafi Jacoby

це варіант у будь-якому випадку
мехдок

0

створити новий відкритий / приватний ключ для нової електронної пошти наступним чином

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

2) укажіть нову назву файлу, в якому потрібно зберегти ключ (/home/.ssh/seckey)

3) Потім додайте свій новий ключ до ssh-агента: - 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 b) heroku git: clone -a your-application


0

Встановіть плагін Heroku-accounts та налаштуйте його !!

Встановлення

 heroku plugins:install heroku-accounts

Використання

Щоб додати облікові записи:

$ heroku accounts:add personal
  Enter your Heroku credentials.
  Email: david@heroku.com
  Password: ******

Щоб перерахувати облікові записи:

$ heroku accounts
  * personal
    work

Щоб перейти на інший рахунок:

heroku accounts:set personal

Щоб знайти поточний рахунок:

$ heroku accounts:current
  personal

Щоб видалити обліковий запис:

$ heroku accounts:remove personal
  Account removed: personal

встановіть на свій робочий рахунок heroku і натисніть зміни.


-1

Відредагуйте конфігурацію для цього проекту, встановивши правильну електронну адресу. З кореня цього сховища,git config user.email <heroku email>


Здається, це не має ефекту, боюся ...
Ерік,

Що можна сказати, коли до цієї команди додати прапор "--global"? Іноді камінь Heroku читав це замість репо-пошти проекту для мене.
danneu
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.