Birden çok heroku hesabı


92

Bilgisayarımda birden fazla Heroku hesabıyla çalışırken sorun yaşıyorum.

Mesele şu ki, heroku gemiyle hesap değiştirerek daha önce harika çalışıyordu. Ama şimdi (yeni SSH anahtarları oluşturmuş olsam bile) işe yaramayacak.

Bir yaptığımda git push heroku mastersadece diyor ki:

my@email.com my_app_name uygulamasına erişim yetkisi yok

Bunu nasıl çözebileceğime dair herhangi bir tavsiyesi olan var mı?


ssh yourid @ server -v ne verir?
Adam Dymitruk

"İzin reddedildi (publickey)."?
Erik

Oh, bir not… "my@email.com" e-postası, Heroku hesabı e-postası ile aynı e-posta değil… bu yüzden soruna neden olan bir tür karışıklık var gibi görünüyor.
Erik

git / .ssh / diectory altında hem özel hem de genel anahtarları kopyalayın. bu benim için çalışıyor!
Dmitri Algazin

Yanıtlar:


162

Doğru ssh anahtarını kullandığınızdan emin olmanız gerekir.

Bunu yapmanın yolu (ve heroku hesapları eklentisinin sizi isteme şekli) ssh yapılandırma dosyanıza ~ / .ssh / config dizinine bir bölüm eklemektir. Örneğin, iş heroku hesabım için ssh yapılandırmamda bu var:

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

Şimdi, ve bu çok önemli, git uzaktan kumandanızın aynı isimli ana bilgisayarı kullanacak şekilde ayarlandığından emin olmalısınız . Bu durumda heroku.work . Heroku'yu yalnızca tek bir hesapla kullanıyor olsaydınız normalde heroku.com olurdu.

Bu yüzden git uzaktan kumandayı düzenlemeniz gerekecek (bunu .git/configmakinenizdeki deponuzun dosyasında yapabilirsiniz ). Dosyayı şöyle görünecek şekilde değiştirin:

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

Heroku'ya dikkat edin. çalış , heroku değil. com.tr ve <appname> yerine uygulamanızın adını (diğer bir deyişle repo adınız) heroku'da yazın.


1
Thx, prod uygulamamı heroku'nun kontrol panelinden oluştururken ihtiyacım olan buydu.
Bachet

1
git@heroku.work ... yine de bir uç nokta olarak mevcut değil. Bunu aktarılacak uç nokta nasıl yaparım? - Ah, heroku hesapları eklentisine ihtiyacınız var.
jmstone617

1
değişiklikleri @jmstone .ssh/configöyle yapmak heroku.workiçin çözdüğüheroku.com
bantic

Ya benim tarafımdan başka bir sorundu, her şeyi çözdüm. Teşekkürler!
jmstone617

Bu sayfayı işaretledim. Ne zaman Heroku'yu zorlarken sorun yaşarsam, bu cevabı okurum ve ne yapmam gerektiğini anlarım.
2014


8

Sahibi olmadığınız projede işbirlikçi olarak kabul edilmelisiniz.

Şu şekilde çalışır (git kullanarak):

  1. Projenin sahibi proje için Heroku'nun konsoluna gidiyor
  2. Sahip, ortak çalışanın e-posta adresini ekler (ortak çalışanın kaydını kaydetmek için kullanılan)
  3. Ortak çalışan, hesabında kamu güvenlik anahtarını ayarlar (zaten yapmamışsa)
  4. Ortak çalışan diğer projeyi başka bir uzaktan kumanda olarak ekler ve kurar

Ve hepsi bu olmalı; diğer uygulamayı konuşlandırırken diğer uzaktan kumandaya basmanız yeterlidir.


Teşekkür ederim!!! Bunu anlamak için saatler harcadım. SO ve diğer sitelerdeki tüm farklı yaklaşımları denemek bile. Heroku'daki her iki projeye de aynı e-postayı eklemek kesinlikle en kolay çözümdür.
B Seven

Bir tanımlama dosyası oluşturmak ve birden fazla anahtarın çalışması için her türlü hile yapmak için çok zaman harcadım, ancak bu yanıt, bunu çalıştırmanın en kolay yoludur. Orijinal hesabınızı ortak çalışan olarak ekleyin ve aynı anahtarı kullanın. Kolay.
Peter Nixey

6

Heroku-account eklentisi olarak birkaç şey ekleyeceğim ... bu örnek, önceden var olan heroku hesabınızın heroku.work olacağını ve yeni bir heroku.personal hesabı eklediğinizi varsayar.

Ayrıca, bir uygulamayı birinden diğerine nasıl taşıyacağınızı da açıklar; örneğin, maksimum 25 uygulama sınırınıza ulaştıysanız ve yeni bir hesap oluşturuyorsanız ve yan projelerinizden ve deneysel uygulamalarınızdan bazılarını ana hesabınızın dışına taşımak istiyorsanız.

  1. Muhtemelen hem eski hem de yeni hesaplarınızı oluşturmak için eklentiyi kullanmanız gerekir, örneğin, başlamak için bir tane varsa, yeni bir heroku ekleyemezsiniz. Kişisel, eskisini değiştirmek için heroku.work oluşturmanız gerekir.
  2. Eski uygulamalarınızı heroku.work'e yeniden atamanız gerekecek
  3. Eğer varsa hareketli bir uygulama, heroku.personal (kullanarak uygulamayı atamazsanız heroku accounts:set personalkadar) sonra sen Heroku kullanarak uygulamayı aktarmak sharinganlatıldığı gibi Commmand https://devcenter.heroku.com/articles/transferring-apps

Yani muhtemelen ihtiyacınız olan adımlar şunlardır:

  1. Heroku hesabı eklentisini yükleyin
  2. Heroku.com'a gidin ve yeni hesabınızı oluşturun (halihazırda ikinci bir hesabınız yoksa)
  3. heroku accounts:add work --autoeski varsayılan hesabınızın yerini alacak yeni bir heroku.work hesabı oluşturmak için çalıştırın (bu nedenle başından beri kullandığınız kimlik bilgilerini kullanın). AYRICA yeni anahtarınızı heroku'ya yüklemeniz gerekir:heroku keys:add ~/.ssh/identity.heroku.work.pub
  4. heroku accounts:add personal --autoyeni bir heroku.personal hesabı oluşturmak için çalıştırın (örneğin, yeni heroku hesabınız için yeni kimlik bilgilerinizi kullanın). AYRICA yeni anahtarınızı heroku'ya yüklemeniz gerekir:heroku keys:add ~/.ssh/identity.heroku.personal.pub
  5. Her uygulama için, proje köküne cd yapın ve ardından çalıştırın heroku accounts:set work(her şey git'i heroku.work'unuzu kullanmak için ayarlar, ki bu (bu örnekte değil) başından beri kullandığınız heroku hesabıyla aynıdır, ancak şimdi adı heroku. iş.
  6. Bir uygulamayı heroku.work'den heroku.personal'a taşımak istiyorsanız, (a) yeni heroku hesabını heroku sharing:add <new owner email>yerel dizininizdeki (b) ile ortak çalışan olarak ekleyin, heroku accounts:set personal(c) transfer ** kullanarak uygulamayı heroku kişisel olarak değiştirin ** uygulamasını kullanarak eski hesaptan yeni hesaba geçiş yapın, heroku sharing:transfer <new owner email>ardından (d) eski e-posta adresini ortak çalışanı (isterseniz) kullanarak kaldırınheroku sharing:remove <old owner email>

** Sağladığım heroku bağlantısının, bir uygulamayı ücretli kaynaklarla taşımak için özel gereksinimler olduğunu söylediğini unutmayın. Genel olarak, ücretli kaynakları kaldırın, daha sonra tekrar ekleyin veya destek alın.


6

Heroku eklentisi https://github.com/ddollar/heroku-accounts kullanımdan kaldırıldı. Heroku artık https://github.com/heroku/heroku-accounts adresinde kendine ait . Maalesef, projeden projeye hangi hesabı kullanması gerektiğini saklamıyor, bu yüzden çalıştırmanız gerekiyor

$ heroku accounts:set account_name

Heroku komut satırı aracını kullanmak istediğinizde.

Bash kabuğuna erişimi olan kişiler için hızlı çözüm: yerel bir bin dizini oluşturun (Rails uygulamalarında zaten var) ve orada bin / heroku oluşturun. İçindekiler:

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

("proje_adı" nı uygun şekilde değiştirin) Sonra çalıştırın

$ chmod + x bin / heroku

Sonra koşabilirsin

$ bin / heroku çalıştırma konsolu

ve sizin için otomatik olarak doğru Heroku hesabını kullanacaktır. Daha da iyisi, yolunuza ./bin eklemektir, böylece sadece koşmaya geri dönersiniz:

$ heroku çalıştırma konsolu


2

Heroku hesapları eklentisini kullanmaya başladım ama sonra arkadaşımın beni heroku hesabında beni bir işbirlikçi yapabileceğini fark ettim ve tek gereken buydu.


buna olumlu oy verin, özellikle her iki hesabın şifresine sahipseniz
portforwardpodcast

2

Heroku hesapları eklentisini kurun ve yapılandırın !!

Kurulum

 heroku plugins:install heroku-accounts

Kullanım

Hesap eklemek için:

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

Hesapları listelemek için:

$ heroku accounts
  * personal
    work

Farklı bir hesaba geçmek için:

heroku accounts:set personal

Mevcut hesabı bulmak için:

$ heroku accounts:current
  personal

Bir hesabı kaldırmak için:

$ heroku accounts:remove personal
  Account removed: personal

çalışan heroku hesabınızı ayarlayın ve değişiklikleri aktarın.


1

Bunun benim için hem Git hem de Heroku konsoluyla çalışmasını sağlamak için, bantic tarafından belirtildiği gibi ssh yapılandırmasını oluştur'u eklemem gerekiyordu, ancak .git yapılandırmam için iki uzaktan kumanda oluşturmam gerekiyordu:

[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
Ve sonra neye itin? heroku veya kökeni?
jmstone617

1

Bu beni bir süredir rahatsız ediyor ve hoşuma giden bir çözüm bulamadım. Sonunda bir tane buldum.

(OS X'e özgü yanıt.)

Sadece yeni kullanıcılar oluşturabilirsiniz. Sistem Tercihleri ​​-> Kullanıcılar ve Gruplar -> Kullanıcı veya grup ekle düğmesine gidin. Farklı heroku hesapları için birkaç kullanıcı oluşturabilirsiniz, ben sadece mine user1, user2, vb. Adını verdim.

Ardından Sistem Tercihleri ​​-> Paylaşım -> Uzaktan Oturum Açma -> Erişim izni ver: Tüm Kullanıcılar'a gidin

Bu noktada, bir terminale gidebilir ve aşağıdakileri yapabilirsiniz:

$ ssh user1@localhost

O zaman bunun gibi şeyler yapabilirsiniz:

$ heroku login
$ heroku keys:add

Bu mükemmel görünüyor, ancak farklı ssh kullanıcılarına aynı klasör ve dosyalara erişim vermek mümkün mü?
Fellow Yabancı

1

Nano .git / config kullandım, ardından uzak "heroku" url değerini heroku.com> apps> settings> Reveal config vari> Heroku Git URL ile değiştirdim


0

Bende de aynı sorun var.

Cevap bu değildir, ancak geçici bir çözüm, erişemediğiniz uygulamaya ortak çalışan olarak "standart" heroku e-postanızı eklemektir.


Üzgünüm bunu takip etmeyi unuttum, ancak bilgisayarımı yeniden başlatmak sorunu çözdü. Seninkini çözemeyebilir.
Erik

Evet, bunu bir yerde de okudum. Benim için işe yaramadı.
kbjerring

0

win7 kullanıyorum

1) win7'de başka bir kullanıcı hesabı oluşturun ve giriş yapın

2) git bash'ı açın ve yeni heroku hesabınıza giriş yapın

3) yeni RSA anahtarı oluşturun ve yükleyin (talimatları burada bulabilirsiniz: https://devcenter.heroku.com/articles/keys )

4) sonra ne istersen onu yap (yeni uygulama oluştur, dosyayı ona gönder .....)

5) orijinal heroku hesabınızla her çalışmanız gerektiğinde, sadece orijinal kazanç kullanıcı hesabınıza giriş yapın ve heroku ile çalışın


Bunu tavsiye etmem - aşağıda daha iyi çözümler varken yerel PC hesaplarını değiştirmek zorunluluktur.
Rafi Jacoby

bu zaten bir seçenek
mehdok

0

aşağıdaki gibi yeni e-posta için yeni genel / özel anahtar oluşturun

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

2) anahtarın kaydedileceği yeni dosya adı sağlayın (/home/.ssh/seckey)

3) Sonra yeni anahtarınızı ssh-agent'a ekleyin: - ssh-add ~ / .ssh / seckey

4) Sonra yeni anahtarınızı heroku'ya ekleyin: - heroku tuşları: ~ / .ssh / seckey ekleyin

5) SSH Yapılandırma Dosyasını ~ / .ssh / config ve içeriği aşağıdaki gibi ekleyin

Heroku.com'u Barındırın Ana Bilgisayar Adı heroku.com Bağlantı Noktası 22 Kimlikler Sadece evet Kimlik Dosyası ~ / .ssh / seckey Kullanıcı mvjohn@klairvoynat.com

Heroku.com'u Barındırın Ana Bilgisayar Adı heroku.com Bağlantı Noktası 22 Kimlikler Yalnızca evet Kimlik Dosyası ~ / .ssh / id_rsa Kullanıcı mvjohn@hotmail.com

6) herhangi birini kullanarak kodu klonlayın

a) git clone git@heroku.com: your-application.git b) heroku git: clone -a-uygulamanız


-1

Doğru e-postayı ayarlayarak o proje için yapılandırmanızı düzenleyin. Bu deponun kökünden,git config user.email <heroku email>


Korkarım hiçbir etkisi yok gibi görünüyor ...
Erik

Bu komuta "--global" bayrağını eklediğinizde ne olacak? Bazen Heroku gem, benim için projenin repo e-postası yerine bunu okuyordu.
danneu
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.