Beberapa akun heroku


92

Saya mengalami masalah saat bekerja dengan beberapa akun Heroku di komputer saya.

Masalahnya adalah ini berfungsi dengan baik sebelumnya dengan beralih akun dengan permata heroku. Tetapi sekarang (meskipun saya telah membuat kunci SSH baru) itu tidak akan berfungsi.

Ketika saya melakukannya, git push heroku masteritu hanya mengatakan:

my@email.com tidak diizinkan untuk mengakses my_app_name

Adakah yang punya saran tentang bagaimana saya bisa menyelesaikan ini?


apa ssh yourid @ server -v berikan?
Adam Dymitruk

"Izin ditolak (publickey)."?
Erik

Oh, satu catatan… Email "my@email.com" bukan email yang sama dengan email akun Heroku… jadi sepertinya ada semacam kesalahan yang menyebabkan masalah.
Erik

salin kunci privat dan publik di bawah git / .ssh / diectory Anda. itu berhasil untuk saya!
Dmitri Algazin

Jawaban:


162

Anda perlu memastikan bahwa Anda menggunakan kunci ssh yang benar.

Cara untuk melakukan ini (dan cara plugin akun heroku meminta Anda) adalah dengan menambahkan bagian ke file konfigurasi ssh Anda di ~ / .ssh / config. Misalnya, untuk akun heroku pekerjaan saya, saya memiliki ini di konfigurasi ssh saya:

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

Sekarang, dan ini sangat penting, Anda perlu memastikan bahwa remote git Anda diatur untuk menggunakan host bernama yang sama . Dalam hal ini adalah heroku.work . Biasanya heroku.com jika Anda menggunakan heroku hanya dengan satu akun.

Jadi Anda harus mengedit git remote (Anda dapat melakukan ini di .git/configfile repo Anda di mesin Anda). Ubah file menjadi seperti:

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

Perhatikan heroku. kerja , bukan heroku. com , dan ganti <appname> dengan nama aplikasi Anda (alias nama repo Anda) di heroku.


1
Thx, itulah yang saya butuhkan ketika saya membuat aplikasi prod saya dari dashboard heroku.
Bachet

1
git@heroku.work ... tidak ada sebagai titik akhir. Bagaimana cara membuatnya menjadi titik akhir untuk didorong? - Ah, Anda membutuhkan plugin akun-heroku.
jmstone617

1
@jmstone Perubahan untuk .ssh/configmembuatnya sehingga heroku.workmemutuskanheroku.com
bantic

Ya, itu adalah masalah lain di pihak saya, mengerti semuanya. Terima kasih!
jmstone617

Saya telah menandai halaman ini. Setiap kali saya mengalami masalah saat mendorong ke Heroku, saya membaca jawaban ini dan menyadari apa yang perlu saya lakukan.
September


8

Anda harus diterima sebagai kolaborator dalam proyek yang tidak Anda miliki.

Ini berfungsi seperti ini (menggunakan git):

  1. Pemilik proyek membuka konsol heroku untuk proyek tersebut
  2. Pemilik menambahkan alamat email kolaborator (yang digunakan untuk mendaftarkan kolaborator)
  3. Kolaborator menyiapkan kunci keamanan publiknya di akunnya (jika dia belum melakukannya)
  4. Kolaborator menambahkan dan menyiapkan proyek lain sebagai remote lain

Dan itu seharusnya semua orang; Anda hanya perlu menekan remote lain saat menerapkan di aplikasi lain.


Terima kasih!!! Saya menghabiskan waktu berjam-jam mencoba memikirkan hal ini. Bahkan mencoba semua pendekatan berbeda di SO dan situs lain. Menambahkan email yang sama ke kedua proyek di Heroku jelas merupakan solusi termudah.
B Tujuh

Saya menghabiskan waktu lama untuk menyiapkan file identifikasi dan melakukan segala macam trik untuk membuat banyak kunci berfungsi tetapi jawaban ini sejauh ini adalah cara termudah untuk membuat ini berfungsi. Tambahkan akun asli Anda sebagai kolaborator dan gunakan kunci yang sama. Mudah.
Peter Nixey

6

Saya akan menambahkan beberapa hal tentang plugin akun-heroku ... contoh ini mengasumsikan akun heroku Anda yang sudah ada sebelumnya adalah heroku.work dan Anda menambahkan akun baru heroku.personal.

Ini juga menjelaskan cara memindahkan aplikasi dari satu aplikasi ke yang lain, misalnya, jika Anda telah mencapai maks 25 aplikasi dan membuat akun baru dan ingin memindahkan beberapa proyek sampingan dan aplikasi eksperimental dari akun utama Anda.

  1. Anda mungkin perlu menggunakan plugin untuk membuat KEDUA akun lama dan baru Anda, misalnya, jika Anda memiliki satu untuk memulai, Anda tidak bisa hanya menambahkan heroku.personal baru, Anda perlu membuat heroku.work untuk menggantikan yang lama
  2. Anda harus menetapkan ulang aplikasi lama Anda ke heroku.work
  3. jika Anda bergerak aplikasi, tidak menetapkan aplikasi untuk heroku.personal (menggunakan heroku accounts:set personal) sampai setelah Anda mentransfer aplikasi menggunakan heroku sharingcommmand seperti yang dijelaskan https://devcenter.heroku.com/articles/transferring-apps

Jadi langkah-langkah yang mungkin Anda butuhkan adalah:

  1. Instal plugin akun heroku
  2. Buka heroku.com dan buat akun baru Anda (jika Anda belum memiliki akun kedua)
  3. jalankan heroku accounts:add work --autountuk membuat akun heroku.work baru untuk menggantikan akun default lama Anda (jadi gunakan kredensial yang sama yang telah Anda gunakan selama ini). Anda JUGA perlu mengunggah kunci baru Anda ke heroku:heroku keys:add ~/.ssh/identity.heroku.work.pub
  4. jalankan heroku accounts:add personal --autountuk membuat akun heroku.personal baru (misalnya, gunakan kredensial baru Anda untuk akun heroku baru Anda). Anda JUGA perlu mengunggah kunci baru Anda ke heroku:heroku keys:add ~/.ssh/identity.heroku.personal.pub
  5. Untuk setiap aplikasi, cd ke root proyek lalu jalankan heroku accounts:set work(semua itu mengatur git untuk menggunakan heroku.work Anda, yang (bukan contoh ini) akun heroku yang sama yang telah Anda gunakan selama ini, hanya sekarang disebut heroku. kerja.
  6. Jika Anda ingin memindahkan aplikasi dari heroku.work ke heroku.personal, (a) tambahkan akun heroku baru sebagai kolaborator dengan heroku sharing:add <new owner email>(b) di direktori lokal Anda, alihkan aplikasi ke heroku.personal menggunakan heroku accounts:set personal(c) transfer ** aplikasi dari akun lama ke akun baru menggunakan heroku sharing:transfer <new owner email>kemudian (d) hapus kolaborator alamat email lama (jika Anda ingin) menggunakanheroku sharing:remove <old owner email>

** Perhatikan tautan heroku yang saya berikan mengatakan ada persyaratan khusus untuk memindahkan aplikasi dengan sumber daya berbayar. Umumnya, hapus resource berbayar, lalu tambahkan kembali nanti, atau minta dukungan untuk melakukannya.


6

Plugin Heroku https://github.com/ddollar/heroku-accounts sudah tidak digunakan lagi. Heroku sekarang memiliki akunnya sendiri di https://github.com/heroku/heroku-accounts . Sayangnya tampaknya tidak menyimpan proyek per proyek akun mana yang harus digunakan sehingga Anda harus menjalankannya

$ heroku accounts:set account_name

setiap kali Anda ingin menggunakan alat baris perintah Heroku.

Solusi cepat bagi orang-orang yang memiliki akses ke bash shell: buat direktori bin lokal (sudah ada di aplikasi Rails) dan buat bin / heroku di sana. Isi:

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

(ganti "project_name" sebagaimana mestinya) Kemudian jalankan

$ chmod + x bin / heroku

Anda kemudian bisa lari

$ bin / heroku menjalankan konsol

dan secara otomatis akan menggunakan akun Heroku yang tepat untuk Anda. Lebih baik lagi menambahkan ./bin ke jalur Anda sehingga Anda kembali hanya menjalankan:

$ heroku menjalankan konsol


2

Saya mulai menggunakan plugin akun-heroku tetapi kemudian menyadari bahwa teman saya bisa menjadikan saya kolaborator di akun heroku-nya dan hanya itu yang diperlukan.


upvote yang ini, terutama jika Anda memiliki kata sandi untuk kedua akun
portforwardpodcast

1

Agar ini berfungsi untuk saya dengan Git dan konsol Heroku, saya harus menambahkan create ssh config seperti yang diperintahkan oleh bantic, tetapi saya juga harus membuat dua remote ke konfigurasi .git saya:

[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
Dan kemudian dorong untuk apa? heroku atau asal?
jmstone617

1

Ini telah mengganggu saya untuk sementara waktu, dan saya tidak pernah menemukan solusi yang saya suka. Akhirnya ditemukan satu.

(Jawaban khusus OS X.)

Anda tinggal membuat pengguna baru. Buka Preferensi Sistem -> Pengguna & Grup -> Tambahkan pengguna atau tombol grup. Anda dapat membuat beberapa pengguna untuk akun heroku yang berbeda, saya baru saja menamai milik saya pengguna1, pengguna2, dll.

Lalu pergi ke System Preferences -> Sharing -> Remote Login -> Izinkan akses untuk: Semua Pengguna

Pada titik ini, Anda dapat pergi ke terminal dan melakukan hal berikut:

$ ssh user1@localhost

Kemudian Anda dapat melakukan hal-hal seperti ini:

$ heroku login
$ heroku keys:add

Ini tampaknya sempurna, tetapi apakah mungkin untuk memberikan pengguna ssh yang berbeda akses ke folder dan file yang sama?
Fellow Stranger

1

Saya menggunakan nano .git / config kemudian mengganti nilai url remote "heroku" dengan heroku.com> apps> pengaturan> Reveal config vars> Heroku Git URL


0

Saya memiliki masalah yang sama persis.

Ini bukan jawabannya, tetapi solusi sementara adalah menambahkan email heroku "standar" Anda sebagai kolaborator ke aplikasi yang tidak dapat Anda akses.


Maaf saya lupa menindaklanjuti ini, tetapi memulai ulang komputer saya menyelesaikan masalah. Mungkin tidak menyelesaikan masalah Anda.
Erik

Ya, saya membaca tentang itu di suatu tempat juga. Itu tidak berhasil untuk saya.
kbjerring

0

saya menggunakan win7

1) buat akun pengguna lain di win7 dan masuk ke dalamnya

2) buka git bash dan masuk ke akun heroku baru Anda

3) buat dan unggah kunci RSA baru (instruksi di sini: https://devcenter.heroku.com/articles/keys )

4) lalu lakukan apa pun yang Anda inginkan (buat aplikasi baru, dorong file ke sana .....)

5) setiap kali Anda perlu bekerja dengan akun heroku asli Anda, cukup masuk ke akun pengguna win asli Anda dan bekerja dengan heroku


Saya tidak akan merekomendasikan ini - harus mengganti akun PC lokal berlebihan ketika ada solusi yang lebih baik di bawah ini.
Rafi Jacoby

ini adalah pilihan pula
mehdok

0

buat kunci publik / pribadi baru untuk email baru sebagai berikut

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

2) berikan nama file baru untuk menyimpan kunci (/home/.ssh/seckey)

3) Kemudian tambahkan kunci baru Anda ke ssh-agent: - ssh-add ~ / .ssh / seckey

4) Kemudian tambahkan kunci baru Anda ke heroku: - kunci heroku: tambahkan ~ / .ssh / seckey

5) tambahkan File Konfigurasi SSH sebagai ~ / .ssh / config dan konten sebagai berikut

Host heroku.com Hostname heroku.com Port 22 Identities Only yes IdentityFile ~ / .ssh / seckey Pengguna mvjohn@klairvoynat.com

Host heroku.com Hostname heroku.com Port 22 Identities Only yes IdentityFile ~ / .ssh / id_rsa Pengguna mvjohn@hotmail.com

6) mengkloning kode menggunakan salah satunya

a) git clone git@heroku.com: aplikasi-Anda.git b) heroku git: clone -a aplikasi-Anda


0

Instal plugin akun Heroku dan konfigurasikan !!

Instalasi

 heroku plugins:install heroku-accounts

Pemakaian

Untuk menambahkan akun:

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

Untuk mendaftar akun:

$ heroku accounts
  * personal
    work

Untuk beralih ke akun lain:

heroku accounts:set personal

Untuk menemukan akun saat ini:

$ heroku accounts:current
  personal

Untuk menghapus akun:

$ heroku accounts:remove personal
  Account removed: personal

atur ke akun heroku Anda yang berfungsi dan dorong perubahan.


-1

Edit konfigurasi Anda untuk proyek itu, setel email yang benar. Dari root repositori itu,git config user.email <heroku email>


Sepertinya tidak berpengaruh Aku takut…
Erik

Bagaimana jika Anda menambahkan tanda "--global" ke perintah itu? Terkadang permata Heroku membacanya alih-alih email repo proyek untuk saya.
danneu
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.