บัญชี Heroku หลายบัญชี


92

ฉันประสบปัญหาในการทำงานกับบัญชี Heroku หลายบัญชีบนคอมพิวเตอร์ของฉัน

สิ่งนี้ก็คือมันใช้งานได้ดีมาก่อนโดยการสลับบัญชีกับอัญมณี heroku แต่ตอนนี้ (แม้ว่าฉันจะสร้างคีย์ SSH ใหม่แล้ว) มันจะไม่ทำงาน

เมื่อฉันทำgit push heroku masterมันเพียงแค่พูดว่า:

my@email.com ไม่ได้รับอนุญาตให้เข้าถึง my_app_name

ใครมีคำแนะนำเกี่ยวกับวิธีแก้ปัญหานี้หรือไม่?


ssh yourid @ server -v ให้อะไร
Adam Dymitruk

"ปฏิเสธการอนุญาต (คีย์สาธารณะ)"?
Erik

อ้อทราบอย่างหนึ่ง ... อีเมล "my@email.com" ไม่ใช่อีเมลเดียวกันกับอีเมลของบัญชี Heroku ... ดังนั้นดูเหมือนว่าจะมีบางอย่างปะปนกันซึ่งเป็นสาเหตุของปัญหา
Erik

คัดลอกทั้งคีย์ส่วนตัวและคีย์สาธารณะภายใต้ git / .ssh / diectory ของคุณ ที่เหมาะกับฉัน!
Dmitri Algazin

คำตอบ:


162

คุณต้องแน่ใจว่าคุณใช้คีย์ 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ไฟล์ repo บนเครื่องของคุณ) เปลี่ยนไฟล์ให้มีลักษณะดังนี้:

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

หมายเหตุ heroku ทำงานไม่ใช่ heroku. comและแทนที่ <appname> ด้วยชื่อแอปของคุณ (หรือที่เรียกว่าชื่อ repo ของคุณ) บน heroku


1
ขอบคุณนั่นคือสิ่งที่ฉันต้องการเมื่อฉันสร้างแอพ prod จากแดชบอร์ดของ heroku
Bachet

1
git@heroku.work ... ไม่มีอยู่เป็นจุดสิ้นสุดแม้ว่า ฉันจะทำให้จุดสิ้นสุดนั้นดันไปได้อย่างไร - อาคุณต้องมีปลั๊กอินบัญชี heroku
jmstone617

1
@jmstone การเปลี่ยนแปลง.ssh/configเพื่อที่heroku.workจะแก้ไขheroku.com
bantic

มันเป็นอีกปัญหาหนึ่งในตอนท้ายของฉันทำให้ทุกอย่างเข้าใจ ขอบคุณ!
jmstone617

ฉันบุ๊กมาร์กหน้านี้แล้ว ทุกครั้งที่ฉันมีปัญหาในการส่งไปยัง Heroku ฉันอ่านคำตอบนี้และตระหนักว่าฉันต้องทำอะไร
septerr

36

ฉันแก้ไขสิ่งนี้โดยใช้ปลั๊กอินบัญชี heroku

ดูคำแนะนำที่นี่

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


ปัญหาที่ใหญ่ที่สุดของเครื่องมือนี้คือการสร้างคีย์ SSH ที่ไม่ได้เข้ารหัส
Wolfram Arnold

สร้างคีย์ด้วยตนเองและปัญหานั้นจะหมดไป ปลั๊กนี้เหมาะสำหรับสิ่งนี้!
Chris Hough

8

คุณต้องได้รับการยอมรับให้เป็นผู้ทำงานร่วมกันในโครงการที่คุณไม่ได้เป็นเจ้าของ

มันทำงานเช่นนี้ (โดยใช้ git):

  1. เจ้าของโปรเจ็กต์ไปที่คอนโซลของ heroku สำหรับโปรเจ็กต์
  2. เจ้าของเพิ่มที่อยู่อีเมลของผู้ทำงานร่วมกัน (ที่ใช้ในการลงทะเบียนผู้ทำงานร่วมกัน)
  3. ผู้ทำงานร่วมกันตั้งค่าคีย์ความปลอดภัยสาธารณะในบัญชีของเขา (หากยังไม่ได้ทำ)
  4. ผู้ทำงานร่วมกันจะเพิ่มและตั้งค่าโปรเจ็กต์อื่นเป็นรีโมตอื่น

และนั่นควรจะเป็นคนทั้งหมด คุณเพียงแค่ต้องกดบนรีโมทอื่น ๆ เมื่อปรับใช้กับแอพอื่น


ขอขอบคุณ!!! ฉันใช้เวลาหลายชั่วโมงในการพยายามคิดออก แม้จะลองใช้วิธีต่างๆทั้งหมดใน SO และไซต์อื่น ๆ การเพิ่มอีเมลเดียวกันในทั้งสองโครงการใน Heroku เป็นวิธีแก้ปัญหาที่ง่ายที่สุด
B Seven

ฉันใช้เวลาหลายปีในการตั้งค่าไฟล์ระบุตัวตนและใช้กลอุบายทุกอย่างเพื่อให้คีย์หลาย ๆ ปุ่มทำงานได้ แต่คำตอบนี้เป็นวิธีที่ง่ายที่สุดในการทำงานนี้ เพิ่มบัญชีเดิมของคุณเป็นผู้ทำงานร่วมกันและใช้คีย์เดียวกัน ง่าย.
Peter Nixey

6

ฉันจะเพิ่มบางสิ่งเข้าไปในปลั๊กอินบัญชี heroku ... ตัวอย่างนี้ถือว่าบัญชี heroku ที่มีอยู่แล้วของคุณจะเป็น heroku.work และคุณกำลังเพิ่มบัญชีใหม่ heroku.personal

นอกจากนี้ยังอธิบายถึงวิธีการย้ายแอปจากแอปหนึ่งไปยังอีกแอปหนึ่งเช่นหากคุณมียอดแอปสูงสุด 25 แอปและกำลังสร้างบัญชีใหม่และต้องการย้ายโครงการข้างเคียงและแอปทดลองบางส่วนออกจากบัญชีหลักของคุณ

  1. คุณอาจต้องใช้ปลั๊กอินเพื่อสร้างทั้งบัญชีเก่าและบัญชีใหม่ของคุณเช่นหากคุณมีบัญชีเพื่อเริ่มต้นคุณไม่สามารถเพิ่ม heroku.personal ใหม่ได้คุณต้องสร้าง heroku.work เพื่อแทนที่บัญชีเก่าของคุณ
  2. คุณจะต้องกำหนดแอปเก่าของคุณใหม่ให้กับ heroku.work
  3. ถ้าคุณกำลังจะย้ายแอปไม่ได้กำหนดให้แอป heroku.personal (ใช้heroku accounts:set personal) จนกระทั่งหลังจากที่คุณโอน app ใช้ Heroku sharingcommmand ตามที่อธิบายไว้https://devcenter.heroku.com/articles/transferring-apps

ดังนั้นขั้นตอนที่คุณอาจต้องการคือ:

  1. ติดตั้งปลั๊กอินบัญชี heroku
  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. สำหรับแต่ละแอป cd ไปที่รูทโปรเจ็กต์จากนั้นเรียกใช้heroku accounts:set work(ทั้งหมดนี้จะตั้งค่าคอมไพล์เพื่อใช้ heroku.work ของคุณซึ่งก็คือ (ยกเลิกในตัวอย่างนี้) บัญชี heroku เดียวกับที่คุณใช้มาตลอดตอนนี้เรียกว่า heroku งาน.
  6. หากคุณต้องการย้ายแอปจาก heroku.work ไปที่ heroku.personal (ก) เพิ่มบัญชี 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 shell: สร้างไดเร็กทอรี bin ในเครื่อง (มีอยู่แล้วในแอปพลิเคชัน Rails) และสร้าง bin / heroku ที่นั่น สารบัญ:

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

(แทนที่ "project_name" ตามความเหมาะสม) จากนั้นเรียกใช้

$ chmod + x bin / heroku

จากนั้นคุณสามารถเรียกใช้

$ bin / heroku รันคอนโซล

และจะใช้บัญชี Heroku ที่เหมาะสมกับคุณโดยอัตโนมัติ ยังดีกว่าคือการเพิ่ม. / bin ในเส้นทางของคุณเพื่อให้คุณกลับมาทำงานได้:

$ heroku รันคอนโซล


2

ฉันเริ่มใช้ปลั๊กอินบัญชี heroku แต่หลังจากนั้นก็รู้ว่าเพื่อนของฉันสามารถทำให้ฉันเป็นผู้ทำงานร่วมกันในบัญชี heroku ของเขาได้และนั่นคือทั้งหมดที่จำเป็น


โหวตให้คะแนนนี้โดยเฉพาะถ้าคุณมีรหัสผ่านสำหรับทั้งสองบัญชี
portforwardpodcast

2

ติดตั้งปลั๊กอินบัญชี Heroku และกำหนดค่า !!

การติดตั้ง

 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 และคอนโซล Heroku ฉันต้องเพิ่มสร้าง 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
แล้วดันไปทำอะไร? heroku หรือต้นกำเนิด?
jmstone617

1

นี่เป็นปัญหาของฉันมาระยะหนึ่งแล้วและฉันไม่เคยพบวิธีแก้ปัญหาที่ฉันชอบ ในที่สุดก็พบหนึ่ง.

(คำตอบเฉพาะ OS X)

คุณสามารถสร้างผู้ใช้ใหม่ได้ ไปที่ System Preferences -> Users & Groups -> ปุ่มเพิ่มผู้ใช้หรือกลุ่ม คุณสามารถสร้างผู้ใช้ไม่กี่คนสำหรับบัญชี heroku ที่แตกต่างกันฉันแค่ตั้งชื่อว่า my user1, user2 เป็นต้น

จากนั้นไปที่ System Preferences -> Sharing -> Remote Login -> Allow access for: All Users

ณ จุดนี้คุณสามารถไปที่เทอร์มินัลและทำสิ่งต่อไปนี้:

$ ssh user1@localhost

จากนั้นคุณสามารถทำสิ่งนี้:

$ heroku login
$ heroku keys:add

ดูเหมือนจะสมบูรณ์แบบ แต่เป็นไปได้หรือไม่ที่จะให้ผู้ใช้ ssh คนอื่นเข้าถึงโฟลเดอร์และไฟล์เดียวกันได้?
Fellow Stranger


0

ฉันมีปัญหาเดียวกันแน่นอน

นี่ไม่ใช่คำตอบ แต่วิธีแก้ปัญหาชั่วคราวคือการเพิ่มอีเมล heroku "มาตรฐาน" ของคุณเป็นผู้ทำงานร่วมกันในแอปที่คุณไม่สามารถเข้าถึงได้


ขออภัยฉันลืมติดตามเรื่องนี้ แต่การรีสตาร์ทคอมพิวเตอร์ช่วยแก้ปัญหาได้ อาจไม่สามารถแก้ปัญหาของคุณได้
Erik

ใช่ฉันอ่านเกี่ยวกับสถานที่นั้นด้วย มันไม่ได้ผลสำหรับฉันแม้ว่า
KBjerring

0

ฉันใช้win7

1)สร้างบัญชีผู้ใช้อื่นใน win7 และเข้าสู่ระบบ

2)เปิด git bash และเข้าสู่บัญชี heroku ใหม่ของคุณ

3)สร้างและอัปโหลดคีย์ RSA ใหม่ (คำแนะนำที่นี่: https://devcenter.heroku.com/articles/keys )

4)จากนั้นทำสิ่งที่คุณต้องการ (สร้างแอพใหม่พุชไฟล์ไป ..... )

5) ทุกครั้งที่คุณต้องทำงานกับบัญชี heroku เดิมของคุณเพียงแค่ลงชื่อเข้าใช้บัญชีผู้ใช้ win เดิมของคุณและทำงานกับ heroku


ฉันจะไม่แนะนำสิ่งนี้ - การต้องเปลี่ยนบัญชีพีซีในพื้นที่นั้นมากเกินไปเมื่อมีวิธีแก้ปัญหาที่ดีกว่าด้านล่าง
Rafi Jacoby

นี่คือตัวเลือกอยู่ดี
mehdok

0

สร้างคีย์สาธารณะ / ส่วนตัวใหม่สำหรับอีเมลใหม่ดังนี้

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

2) ระบุชื่อไฟล์ใหม่ที่จะบันทึกคีย์ (/home/.ssh/seckey)

3) จากนั้นเพิ่มคีย์ใหม่ของคุณใน ssh-agent: - ssh-add ~ / .ssh / seckey

4) จากนั้นเพิ่มคีย์ใหม่ของคุณไปที่ heroku: - คีย์ heroku: เพิ่ม ~ / .ssh / seckey

5) เพิ่มไฟล์ SSH Config เป็น ~ / .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) โคลนรหัสโดยใช้อย่างใดอย่างหนึ่ง

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


-1

แก้ไขการกำหนดค่าของคุณสำหรับโครงการนั้นตั้งค่าอีเมลที่ถูกต้อง จากรากของที่เก็บนั้นgit config user.email <heroku email>


ดูเหมือนจะไม่มีผลฉันกลัว…
Erik

แล้วเมื่อคุณเพิ่มแฟล็ก "--global" ลงในคำสั่งนั้นล่ะ? บางครั้งอัญมณี Heroku ก็อ่านข้อความนั้นแทนอีเมล repo ของโครงการให้ฉัน
danneu
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.