여러 헤 로쿠 계정


92

내 컴퓨터에서 여러 Heroku 계정으로 작업 할 때 문제가 있습니다.

문제는 heroku gem으로 계정을 전환하여 이전에 훌륭하게 작동했다는 것입니다. 하지만 지금은 (새 SSH 키를 생성했지만) 작동하지 않습니다.

내가 할 때 git push heroku master다음과 같이 말합니다.

my@email.com이 my_app_name에 액세스 할 권한이 없습니다.

누구든지 내가 이것을 해결할 수있는 방법에 대한 조언이 있습니까?


ssh yourid @ server -v는 무엇을 제공합니까?
Adam Dymitruk 2011 년

"권한이 거부되었습니다 (공개 키)."?
Erik

아, 한 가지 메모… 이메일 "my@email.com"은 Heroku 계정 이메일과 같은 이메일이 아닙니다. 그래서 문제를 일으키는 일종의 혼동이있는 것 같습니다.
Erik

git / .ssh / diectory 아래에 개인 키와 공개 키를 모두 복사하십시오. 그것은 나를 위해 작동합니다!
Dmitri Algazin 2014

답변:


162

올바른 ssh 키를 사용하고 있는지 확인해야합니다.

이를 수행하는 방법 (그리고 heroku 계정 플러그인이 프롬프트하는 방법)은 ~ / .ssh / config의 ssh 구성 파일에 섹션을 추가하는 것입니다. 예를 들어, 내 작업 heroku 계정의 경우 ssh 구성에 다음이 있습니다.

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

이제 이것은 매우 중요합니다. git remote가 동일한 이름의 host 를 사용 하도록 설정되어 있는지 확인해야합니다 . 이 경우 heroku.work 입니다. 일반적으로 단일 계정으로 heroku를 사용하는 경우에는 heroku.com이됩니다.

따라서 git remote를 편집해야 .git/config합니다 (시스템의 저장소 파일 에서이 작업을 수행 할 수 있습니다 ). 파일을 다음과 같이 변경하십시오.

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

heroku에 유의하십시오. 헤 로쿠가 아니라 . com 을 입력하고 <appname>을 heroku의 앱 이름 (일명 repo 이름)으로 바꿉니다.


1
Thx, 그것은 heroku의 대시 보드에서 내 prod 앱을 만들 때 필요한 것입니다.
Bachet 2013 년

1
git@heroku.work ...는 엔드 포인트로 존재하지 않습니다. 푸시 할 엔드 포인트로 만들려면 어떻게해야합니까? -아, heroku-accounts 플러그인이 필요합니다.
jmstone617 2013-08-20

1
변경 사항을 @jmstone .ssh/config그래서 그것을 확인하는 heroku.work로 확인heroku.com
bantic

Ya 그것은 내 쪽의 또 다른 문제였습니다. 감사!
jmstone617 2013-08-21

이 페이지를 북마크했습니다. Heroku에 푸시하는 데 문제가있을 때마다이 답변을 읽고 내가해야 할 일을 깨닫습니다.
9


8

자신이 소유하지 않은 프로젝트의 공동 작업자로 인정 받아야합니다.

다음과 같이 작동합니다 (git 사용).

  1. 프로젝트 소유자는 프로젝트의 heroku 콘솔로 이동합니다.
  2. 소유자는 공동 작업자의 이메일 주소 (공동 작업자의 등록에 사용 된 주소)를 추가합니다.
  3. 공동 작업자가 자신의 계정에 공개 보안 키를 설정합니다 (아직 설정하지 않은 경우).
  4. 공동 작업자는 다른 프로젝트를 다른 원격으로 추가하고 설정합니다.

그리고 그것은 모든 사람들이어야합니다; 다른 앱에 배포 할 때 다른 리모컨을 푸시하면됩니다.


감사합니다!!! 나는 이것을 알아 내기 위해 몇 시간을 보냈다. SO 및 다른 사이트에서 모든 다른 접근 방식을 시도합니다. Heroku의 두 프로젝트에 동일한 이메일을 추가하는 것이 가장 쉬운 해결책입니다.
B 세븐

나는 식별 파일을 설정하고 여러 키가 작동하도록 모든 종류의 트릭을 수행하는 데 오랜 세월을 보냈지만이 대답은이 작업을 수행하는 가장 쉬운 방법입니다. 원래 계정을 공동 작업자로 추가하고 동일한 키를 사용합니다. 쉬운.
Peter Nixey

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기술로 Section 명령을 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. 각 앱에 대해 프로젝트 루트로 cd 한 다음 실행합니다 heroku accounts:set work(이 모든 작업은 heroku.work를 사용하도록 git을 설정합니다.이 예제에서는 사용했던 것과 동일한 heroku 계정이 지금 만 heroku라고합니다). 작업.
  6. heroku.work에서 heroku.personal로 앱을 이동하려면 heroku sharing:add <new owner email>(a) 로컬 디렉토리에서 (b) 와 함께 새 heroku 계정을 공동 작업자로 추가하고 heroku accounts:set personal(c) transfer **를 사용하여 앱을 heroku.personal로 전환합니다. 다음을 사용하여 이전 계정에서 새 계정으로 앱을 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 $*

( "project_name"을 적절하게 교체) 그런 다음

$ chmod + x bin / heroku

그런 다음 실행할 수 있습니다.

$ bin / heroku 실행 콘솔

자동으로 올바른 Heroku 계정을 사용합니다. 더 나은 방법은 경로에 ./bin을 추가하여 다시 실행하는 것입니다.

$ heroku 실행 콘솔


2

저는 heroku-accounts 플러그인을 사용하기 시작했지만 제 친구가 자신의 heroku 계정에서 저를 공동 작업자로 만들 수 있다는 것을 깨달았습니다.


특히 두 계정에 대한 암호가있는 경우이 항목을
찬성하십시오

1

Git과 Heroku 콘솔 모두에서이 작업을 수행하려면 bantic의 지시에 따라 ssh 구성을 추가해야했지만 .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
그리고 무엇을 밀어 붙이세요? heroku 또는 기원?
jmstone617 2013-08-20

1

이것은 한동안 나를 괴롭 혔고 내가 좋아하는 해결책을 찾지 못했습니다. 마침내 하나를 찾았습니다.

(OS X 특정 답변.)

새 사용자를 만들 수 있습니다. 시스템 환경 설정-> 사용자 및 그룹-> 사용자 또는 그룹 추가 버튼으로 이동합니다. 다른 heroku 계정에 대해 몇 명의 사용자를 만들 수 있습니다. 방금 내 user1, user2 등으로 이름을 지정했습니다.

그런 다음 시스템 환경 설정-> 공유-> 원격 로그인-> 액세스 허용 : 모든 사용자로 이동합니다.

이 시점에서 터미널로 이동하여 다음을 수행 할 수 있습니다.

$ ssh user1@localhost

그런 다음 다음과 같이 할 수 있습니다.

$ heroku login
$ heroku keys:add

이것은 완벽 해 보이지만 다른 ssh 사용자에게 동일한 폴더 및 파일에 대한 액세스 권한을 부여 할 수 있습니까?
Fellow Stranger

1

nano .git / config를 사용한 다음 원격 "heroku"의 URL 값을 heroku.com> 앱> 설정> 구성 변수 표시> Heroku Git URL로 바꿨습니다.


0

나는 똑같은 문제가 있습니다.

이것이 답은 아니지만 임시 해결책은 "표준"heroku 이메일을 공동 작업자로 액세스 할 수없는 앱에 추가하는 것입니다.


후속 조치를 잊어 버려 죄송합니다. 컴퓨터를 다시 시작하면 문제가 해결되었습니다. 당신의 것을 해결하지 못할 수도 있습니다.
Erik

그래, 나도 어떤 곳에서 읽었 어. 그래도 작동하지 않았습니다.
kbjerring 2011 년

0

나는 win7을 사용하고있다

1) win7에서 다른 사용자 계정을 만들고 로그인합니다.

2) git bash를 열고 새 heroku 계정에 로그인하십시오.

3) 새 RSA 키 생성 및 업로드 (지침 : https://devcenter.heroku.com/articles/keys )

4) 그런 다음 원하는 작업을 수행합니다 (새 앱 생성, 파일 푸시 .....)

5) 원래 heroku 계정으로 작업해야 할 때마다 원래 win 사용자 계정에 로그인하고 heroku로 작업하십시오.


나는 이것을 권장하지 않을 것입니다. 아래에 더 나은 솔루션이있을 때 로컬 PC 계정을 전환하는 것은 과잉입니다.
Rafi Jacoby 2013

어쨌든 이것은 옵션입니다
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 IdentitiesOnly 예 IdentityFile ~ / .ssh / seckey 사용자 mvjohn@klairvoynat.com

호스트 heroku.com 호스트 이름 heroku.com 포트 22 IdentitiesOnly 예 IdentityFile ~ / .ssh / id_rsa 사용자 mvjohn@hotmail.com

6) 다음 중 하나를 사용하여 코드 복제

a) 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>


효과가없는 것 같네요…
Erik

해당 명령에 "--global"플래그를 추가하면 어떨까요? 때때로 Heroku gem은 나를 위해 프로젝트의 repo 이메일 대신 그것을 읽었습니다.
danneu
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.