Wiele kont heroku


92

Mam problem podczas pracy z wieloma kontami Heroku na moim komputerze.

Chodzi o to, że wcześniej działało świetnie, zmieniając konta za pomocą klejnotu Heroku. Ale teraz (mimo że wygenerowałem nowe klucze SSH) to nie zadziała.

Kiedy robię git push heroku master, po prostu mówi:

my@email.com nie ma uprawnień dostępu do my_app_name

Czy ktoś ma jakieś rady jak mógłbym to rozwiązać?


co daje ssh yourid @ server -v?
Adam Dymitruk

„Odmowa pozwolenia (publickey)”?
Erik,

Aha, jedna uwaga… E-mail „my@email.com” to nie ten sam adres e-mail, jak adres e-mail konta Heroku… więc wydaje się, że jest jakiś błąd, który powoduje problem.
Erik

skopiuj klucze prywatny i publiczny do swojego git / .ssh / diectory. to działa dla mnie!
Dmitri Algazin,

Odpowiedzi:


162

Musisz się upewnić, że używasz prawidłowego klucza ssh.

Sposobem na zrobienie tego (i sposobem, w jaki wtyczka kont heroku wyświetla monit) jest dodanie sekcji do pliku konfiguracyjnego ssh w ~ / .ssh / config. Na przykład dla mojego konta służbowego heroku mam to w mojej konfiguracji ssh:

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

Teraz, i to jest kluczowe, musisz upewnić się, że twój pilot git jest skonfigurowany do używania tego samego nazwanego hosta . W tym przypadku jest to heroku.work . Zwykle byłoby to heroku.com, gdybyś używał heroku tylko z jednym kontem.

Musisz więc edytować pilota git (możesz to zrobić w .git/configpliku repozytorium na swoim komputerze). Zmień plik, aby wyglądał następująco:

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

Zwróć uwagę na heroku. praca , nie heroku. pl i zastąp <appname> nazwą swojej aplikacji (inaczej nazwą repozytorium) na heroku.


1
Dzięki, tego właśnie potrzebowałem, kiedy tworzyłem moją aplikację do produkcji z pulpitu nawigacyjnego heroku.
Bachet

1
git@heroku.work ... nie istnieje jednak jako punkt końcowy. Jak ustawić ten punkt końcowy do wypychania? - Ach, potrzebujesz wtyczki heroku-accounts.
jmstone617

1
@jmstone Zmiany, które .ssh/configmają to doprowadzić heroku.workdoheroku.com
bantic

Tak, to był kolejny problem z mojej strony, zrozumiałem wszystko. Dzięki!
jmstone617

Dodałem tę stronę do zakładek. Za każdym razem, gdy mam problemy z przejściem do Heroku, czytam tę odpowiedź i zdaję sobie sprawę, co muszę zrobić.
Septerr


8

Musisz zostać zaakceptowany jako współpracownik w projekcie, którego nie jesteś właścicielem.

Działa to tak (używając git):

  1. Właściciel projektu przechodzi do konsoli heroku dla projektu
  2. Właściciel dodaje adres e-mail współpracownika (ten, który został użyty do zarejestrowania współpracownika)
  3. Współpracownik ustawia swój publiczny klucz bezpieczeństwa na swoim koncie (jeśli jeszcze tego nie zrobił)
  4. Współpracownik dodaje i konfiguruje inny projekt jako inny pilot

I to powinno być dla wszystkich ludzi; podczas wdrażania w innej aplikacji wystarczy nacisnąć drugi pilot.


Dziękuję Ci!!! Spędziłem godziny, próbując to rozgryźć. Nawet wypróbowanie wszystkich różnych podejść w SO i innych witrynach. Dodanie tego samego e-maila do obu projektów w Heroku jest zdecydowanie najłatwiejszym rozwiązaniem.
B Seven

Spędziłem lata na tworzeniu pliku identyfikacyjnego i wykonywaniu różnych sztuczek, aby wiele kluczy działało, ale ta odpowiedź jest zdecydowanie najłatwiejszym sposobem, aby to zadziałało. Dodaj swoje oryginalne konto jako współpracownika i użyj tego samego klucza. Łatwy.
Peter Nixey

6

Dodałbym kilka rzeczy do wtyczki heroku-accounts ... w tym przykładzie założono, że Twoje istniejące konto heroku będzie heroku.work i dodajesz nowe konto heroku.personal.

Opisuje również, jak przenieść aplikację z jednej do drugiej, na przykład, jeśli osiągnąłeś maksimum 25 aplikacji i tworzysz nowe konto i chcesz przenieść niektóre projekty poboczne i aplikacje eksperymentalne z konta głównego.

  1. Prawdopodobnie będziesz musiał użyć wtyczki, aby utworzyć ZARÓWNO stare, jak i nowe konta, np. Jeśli miałeś jedno na początku, nie możesz po prostu dodać nowego heroku.personal, musisz utworzyć heroku.work, aby zastąpić stare
  2. Musisz ponownie przypisać swoje stare aplikacje do heroku.work
  3. jeśli przeniesienie aplikacji, nie należy przypisać aplikację do heroku.personal (za pomocą heroku accounts:set personal), aż po przesyłanie aplikacji za pomocą Heroku sharingcommmand jak opisano https://devcenter.heroku.com/articles/transferring-apps

Oto kroki, których prawdopodobnie potrzebujesz:

  1. Zainstaluj wtyczkę heroku-account
  2. Przejdź na heroku.com i utwórz nowe konto (jeśli nie masz jeszcze drugiego konta)
  3. uruchom, heroku accounts:add work --autoaby utworzyć nowe konto heroku.work, aby zastąpić stare konto domyślne (więc użyj tych samych poświadczeń, których używałeś przez cały czas). Musisz RÓWNIEŻ przesłać swój nowy klucz do heroku:heroku keys:add ~/.ssh/identity.heroku.work.pub
  4. uruchom, heroku accounts:add personal --autoaby utworzyć nowe konto heroku.personal (np. użyj nowych danych logowania do nowego konta heroku). Musisz RÓWNIEŻ przesłać swój nowy klucz do heroku:heroku keys:add ~/.ssh/identity.heroku.personal.pub
  5. Dla każdej aplikacji, przejdź do katalogu głównego projektu, a następnie uruchom heroku accounts:set work (wszystko po to ustawia git do korzystania z heroku.work, które jest (poza tym przykładem) tym samym kontem heroku, którego używasz przez cały czas, tylko że teraz nazywa się heroku. praca.
  6. Jeśli chcesz przenieść aplikację z heroku.work do heroku.personal, (a) dodaj nowe konto heroku jako współpracownika z heroku sharing:add <new owner email>(b) w katalogu lokalnym, przełącz aplikację na heroku.personal za pomocą heroku accounts:set personal(c) transfer ** aplikację ze starego konta na nowe za pomocą, heroku sharing:transfer <new owner email>a następnie (d) usuń współpracownika ze starego adresu e-mail (jeśli chcesz) za pomocąheroku sharing:remove <old owner email>

** Zauważ, że link do heroku, który podałem, mówi, że istnieją specjalne wymagania, aby przenieść aplikację z płatnymi zasobami. Ogólnie rzecz biorąc, usuń opłacone zasoby, a następnie dodaj je później lub poproś o to pomoc techniczną.


6

Wtyczka Heroku https://github.com/ddollar/heroku-accounts została wycofana. Heroku utrzymuje teraz swoją własną pod adresem https://github.com/heroku/heroku-accounts . Niestety wydaje się, że nie przechowuje projektu po projekcie, którego konta powinien używać, więc musisz uruchomić

$ heroku accounts:set account_name

za każdym razem, gdy chcesz użyć narzędzia wiersza poleceń Heroku.

Szybkie rozwiązanie dla osób z dostępem do powłoki bash: utwórz lokalny katalog bin (jest już tam w aplikacjach Railsowych) i utwórz tam bin / heroku. Zawartość:

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

(odpowiednio zastąp „nazwa_projektu”) Następnie uruchom

$ chmod + x bin / heroku

Możesz wtedy biec

$ bin / heroku uruchom konsolę

i automatycznie użyje dla Ciebie odpowiedniego konta Heroku. Jeszcze lepiej jest dodać ./bin do swojej ścieżki, aby wrócić do zwykłego biegania:

$ heroku uruchom konsolę


2

Zacząłem używać wtyczki heroku-accounts, ale zdałem sobie sprawę, że mój kumpel może po prostu uczynić mnie współpracownikiem na swoim koncie heroku i to było wszystko, czego potrzebowałem.


zagłosuj na ten, zwłaszcza jeśli masz hasło do obu kont
portforwardpodcast

2

Zainstaluj wtyczkę Heroku-accounts i skonfiguruj ją !!

Instalacja

 heroku plugins:install heroku-accounts

Stosowanie

Aby dodać konta:

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

Aby wyświetlić listę kont:

$ heroku accounts
  * personal
    work

Aby przełączyć się na inne konto:

heroku accounts:set personal

Aby znaleźć rachunek bieżący:

$ heroku accounts:current
  personal

Aby usunąć konto:

$ heroku accounts:remove personal
  Account removed: personal

ustaw swoje działające konto heroku i wprowadź zmiany.


1

Aby to zadziałało zarówno z Git, jak i konsolą Heroku, musiałem dodać tworzenie konfiguracji ssh zgodnie z instrukcją bantic, ale musiałem również utworzyć dwa piloty do mojej konfiguracji .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/*

1
A potem naciskać do czego? heroku czy pochodzenie?
jmstone617

1

Dręczyło mnie to od jakiegoś czasu i nigdy nie znalazłem rozwiązania, które by mi się podobało. Wreszcie znalazłem jeden.

(Odpowiedź specyficzna dla OS X).

Możesz po prostu utworzyć nowych użytkowników. Idź do Preferencje systemowe -> Użytkownicy i grupy -> przycisk Dodaj użytkownika lub grupę. Możesz utworzyć kilku użytkowników dla różnych kont Heroku, właśnie nazwałem mój user1, user2 itd.

Następnie przejdź do Preferencje systemowe -> Udostępnianie -> Logowanie zdalne -> Zezwól na dostęp dla: Wszystkich użytkowników

W tym momencie możesz przejść do terminala i wykonać następujące czynności:

$ ssh user1@localhost

Następnie możesz zrobić takie rzeczy:

$ heroku login
$ heroku keys:add

Wydaje się to idealne, ale czy można dać różnym użytkownikom ssh dostęp do tych samych folderów i plików?
Fellow Stranger

1

Użyłem nano .git / config, a następnie zastąpiłem wartość adresu URL zdalnego „heroku” na heroku.com> apps> settings> Reveal config vars> Heroku Git URL


0

Mam dokładnie ten sam problem.

To nie jest odpowiedź, ale tymczasowym rozwiązaniem jest dodanie „standardowego” adresu e-mail Heroku jako współpracownika do aplikacji, do której nie masz dostępu.


Przepraszam, że zapomniałem kontynuować, ale ponowne uruchomienie komputera rozwiązało problem. Może nie rozwiązać twojego.
Erik,

Tak, czytałem też o tym miejscu. Jednak to nie zadziałało.
kbjerring

0

używam win7

1) utwórz nowe konto użytkownika w win7 i zaloguj się do niego

2) otwórz git bash i zaloguj się na swoje nowe konto heroku

3) utwórz i prześlij nowy klucz RSA (instrukcja tutaj: https://devcenter.heroku.com/articles/keys )

4) następnie rób, co chcesz (utwórz nową aplikację, prześlij do niej plik .....)

5) za każdym razem, gdy musisz pracować na swoim oryginalnym koncie heroku, po prostu zaloguj się na swoje oryginalne konto wygrywającego użytkownika i pracuj z heroku


Nie polecałbym tego - konieczność zmiany lokalnych kont na PC jest przesada, gdy poniżej są lepsze rozwiązania.
Rafi Jacoby

to i tak jest opcja
mehdok

0

utwórz nowy klucz publiczny / prywatny dla nowej wiadomości e-mail w następujący sposób

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

2) podaj nową nazwę pliku, w którym ma zostać zapisany klucz (/home/.ssh/seckey)

3) Następnie dodaj nowy klucz do ssh-agent: - ssh-add ~ / .ssh / seckey

4) Następnie dodaj nowy klucz do heroku: - klucze heroku: dodaj ~ / .ssh / seckey

5) Dodaj plik konfiguracyjny SSH jako ~ / .ssh / config i zawartość w następujący sposób

Host heroku.com Nazwa hosta heroku.com Port 22 IdentitiesOnly tak IdentityFile ~ / .ssh / seckey Użytkownik mvjohn@klairvoynat.com

Host heroku.com Nazwa hosta heroku.com Port 22 IdentitiesOnly tak IdentityFile ~ / .ssh / id_rsa Użytkownik mvjohn@hotmail.com

6) sklonuj kod za pomocą jednego z nich

a) git clone git@heroku.com: twoja-aplikacja.git b) heroku git: clone -a twoja-aplikacja


-1

Edytuj konfigurację dla tego projektu, ustawiając poprawny adres e-mail. Z katalogu głównego tego repozytoriumgit config user.email <heroku email>


Obawiam się, że nie ma to żadnego efektu…
Erik

A co z dodaniem flagi „--global” do tego polecenia? Czasami perełka Heroku czytała to zamiast e-maila dotyczącego repozytorium projektu.
danneu
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.