여러 헤 로쿠 계정


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.