Heroku '허가 거부 (공개 키) 치명적 : 원격 저장소에서 읽을 수 없음'문제


139

나는 해결하기 쉬운 것처럼 보이는 문제에 대한 해결책을 찾기 위해 여러 시간 동안 주위를 둘러 보았습니다. 내 검색이 아무 것도 설정 한 것이 아니라 내 검색이 너무 많은 다른 솔루션을 찾은 것입니다.

어쨌든 내 Mac의 Heroku 저장소에서 밀거나 당기거나 가져올 수 없습니다. 모든 시도는 나를 조롱하는 것처럼 다음과 같은 오류를 발생시킵니다.

'권한이 거부되었습니다 (공개 키). 치명적 : 원격 저장소에서 읽을 수 없습니다. '

여러 가지 방법으로 문제를 해결하려고 시도했습니다. 내가 말했듯이, 나는 지난 이틀 동안 좋은 답을 보냈다. 내가 시도한 것들 중 일부는 다음과 같습니다.

  • heroku 키 : 클리어 다음에 heroku 키 : add
  • 'ssh-keygen -t rsa'를 사용하여 자체적으로 ssh 키 재생성
  • .ssh 디렉토리를 지우고 heroku 키 : clear와 ssh 키 생성을 차례로 지 웁니다.
  • heroku에서 내 앱을 삭제하고 다시 만드는 중 (다행히 많지는 않았지만)

내 GitHub 리포지토리에서 가져올 수 있으므로 네트워크 연결이 아님을 알고 있습니다 (ping heroku도 작동합니다).

임시 솔루션 (영구 솔루션으로 변하지 않기를 희망)으로 Ubuntu Amazon AWS ec2 인스턴스에 로그인했습니다. Heroku로 당기고 밀면 완벽하게 작동합니다. 이런 이유로 여전히 문제는 Mac의 ssh 키에있는 것처럼 느낍니다. 두 키 모두 Heroku 계정에 나타납니다. 키 끝에있는 이메일 주소가 중요합니까?

편집 : GitHub에서 밀고 당길 수 있습니다 (그러나 ssh를 사용하지 않습니다). 왜 Heroku는 사용하지 않습니까?

이 시점에서 나는 무엇이든 시도하려고한다. 감사!


heroku 키에 암호를 설정 했습니까? 그리고 이것이 ( stackoverflow.com/a/16753800/6309 ) 도움이되지 않는다고 생각 합니까? 또는 stackoverflow.com/a/16753800/6309를 다시
VonC

슬프게도 여전히 작동하지 않습니다.
thebradbain

때때로 이것은 heroku가 유지 보수 중일 때 발생합니다 : status.heroku.com
Mavis

답변:


284

나는 이것이 이미 답변되었음을 알고 있습니다. 그러나 앞으로 다른 사람들에게 도움이 될 수 있으므로 솔루션을 추가하고 싶습니다.

일반적인 키 오류는 다음과 같습니다 Permission denied (publickey).. keys:addHeroku에 새 키를 알리기 위해이 문제를 해결할 수 있습니다 .

간단히 말하면 다음 단계를 따르십시오. https://devcenter.heroku.com/articles/keys

먼저 키가 없으면 키를 만들어야합니다.

ssh-keygen -t rsa

두 번째로 Heroku에 키를 추가해야합니다.

heroku keys:add

2
고마워 kris, 미래의 일부 :) 이것은 나를 위해 작동
Ahmad Ajmi

8
heroku keys : 추가 된 튜토리얼이 누락되었습니다 ... 고마워요! :)
Ole Henrik Skogstrøm

alredy가없는 경우에만 키를 생성해야합니다. 제 경우에는 alredy가 키를 가지고 있으며 heroku에 키를 추가해야했습니다
joseramonc

4
첫 번째는 불필요합니다. heroku keys:add키가없는 경우 키를 만드는 데 도움이됩니다.
Mygod

실행 ssh-keygen -t rsa이 경우 RSA, 그렇지 않으면 발생하지 않는 heroku keys:add충분할 수 있어야
Volatil3

122

나는 내 자신의 질문에 대한 답을 찾은 것을 나눌 것이라고 생각했습니다.

내 문제를 적어 보면 더 명확 해졌고 문제가 어디에 있다고 생각하는지 더 자세히 조사했습니다 .ssh 키

내가 옳았다. 문제는 키 자체가 아니라 로컬 Mac의 알려진 ssh 키 목록에 추가하지 않았기 때문입니다. 따라서 Heroku 계정에 올바른 키가 업로드되어 있어도 내 컴퓨터에서 해당 키를 찾을 수 없으므로 Mac에서 인증 할 수 없습니다. 해결책?

ssh-add ~/.ssh/id_rsa
#and, to confirm it's been added to the known list of keys
ssh-add -l

나는에 신용주고 싶습니다 https://help.github.com/articles/error-permission-denied-publickey을 좋은 참조 것에 대해.


5
초기 의견보다 상황에 더 정확한 피드백을 보내 주셔서 감사합니다. +1
VonC

4
Windows에서는 시작 Git Bash(폴더를 마우스 오른쪽 버튼으로 클릭) ssh-agent하고 실행 `ssh-agent`하여 (백 틱에주의) 시작한 다음 위에 설명 된대로 키를 추가해야합니다. Git Bash/를 시작할 때 마다이 작업을 수행해야하며 ssh-agent추가 된 것을 잊어 버립니다.
TWiStErRob

나는 이것을했는데 여전히 작동하지 않았다. 내 .ssh 폴더가있는 디렉토리에 HOME이라는 환경 변수를 추가해야했습니다.
Justin

고마워-이것을 알아 내지 못했을 것입니다!
Mark Hansen

이 고정 내 문제가 아닌 이상은 대답, 감사합니다 :) 투표
라이언 브로디를

31

나는 정확히 같은 오류가 있었으며 (Windows 7에서) 원인이 다릅니다. 다른 방법으로 해결 했으므로 다른 사람들을 위해 여기에 원인과 해결책을 추가 할 것이라고 생각했습니다.

오류가 heroku를 가리키는 것처럼 보이지만 실제로 오류가 말하고 "Heroku can't get to the git repository"있습니다. 나는 모든 서버에 동일한 키가 있다고 맹세했습니다. 왜냐하면 나는 그것을 만들고 동시에 하나씩 업로드했기 때문입니다.

이것에 거의 하루를 보낸 후에 나는 자식이 실제 키가 아니라 지문 만 보여주기 때문에 깨달았습니다. 키가 HD 또는 heroku의 키와 일치하는지 확인할 수 없습니다. 알려진 호스트 파일을 살펴보고 무엇을 추측합니다 ... 각 서버의 키를 표시하며 git 및 heroku 공개 키가 일치하지 않음을 분명히 알 수있었습니다.

1) 키 폴더의 모든 파일, 웹 사이트를 사용하는 github의 키 및 git bash 및 명령을 사용하는 heroku의 키를 모두 삭제했습니다. heroku keys:clear

2) 여기 에 github의 지침에 따라 새 키 페어를 생성하고 공개 키를 git에 업로드하십시오.

3) git bash- heroku keys:add heroku에 동일한 키를 업로드하는 데 사용 합니다.

이제 git push heroku master작동합니다.

이 악몽이 누군가에게 도움이 되었기를 바랍니다.

브라이언


1
내가 당신의 게시물을 볼 때까지 이것에 내 두뇌를 랙. git과 heroku 키를 동일하게 만들면 모든 것이 잘되었습니다. 그러나 왜 그들이 동일해야하는지 이해하지 마십시오.
Kishore Masand

이 문제와 답 보냈다 나이 주셔서 감사합니다
이반 바쳐에게

매우 유용한 자식 문서 링크, 모든 것이 완벽합니다
HotJard

이것은 며칠 동안 알아 내려고 노력한 후에 저에게 효과적이었습니다. Heroku가이 불쾌한 사용성 문제로 비즈니스를 계속할 수 있다는 것에 놀랐습니다. 이 작업을 수행하는 더 쉬운 방법이 있어야합니다.
Luke F.

감사합니다. 나를 위해 일했다. 한가지 : github 링크에서 어딘가에 "ssh-add"를한다고 말합니다. 거기에 문제가 있었지만 여기서 해결책을 찾았습니다. stackoverflow.com/questions/17846529/…
Alin Ciocan

17

내가 겪고있는 문제는 내 GitHub 계정에 https 만 사용하고 있다는 것입니다. 내 GitHub 계정이 ssh 액세스를 위해 설정되었고 GitHub와 heroku가 동일한 공개 키를 사용하고 있는지 확인해야했습니다. 내가 취한 단계는 다음과 같습니다.

  1. ~ / .ssh 디렉토리로 이동하여 id_rsa 및 id_rsa.pub가 있으면 삭제하십시오. 필요하지 않을 수도 있지만 새 키로 시작했습니다.

    $ cd ~/.ssh
    $ rm id_rsa id_rsa.pub
    
  2. gitHub의 단계에 따라 ssh 키생성 하십시오.
  3. heroku에 로그인하여 새 사이트를 만들고 공개 키를 추가하십시오.

    $ heroku login
    ...
    $ heroku create
    $ heroku keys:add
    $ git push heroku master
    

6

나는 리눅스 우분투에서 같은 경우를 가지고 있었고 그것을 고쳤다 .OS가 /root/.ssh/와 home / user / .ssh / dir 사이에 혼란스러워 보인다.

  1. root 및 home / user .shh 디렉토리에서 모든 키를 제거했습니다.
  2. 새 키 생성 생성 (/home/you/.ssh/id_rsa) 또는 (/root/.ssh/id_rsa) 경로에주의하십시오
  3. 헤 로쿠 키 확인 heroku keys
  4. 거기에 키가 있으면 heroku keys:clear
  5. heroku keys:add이제 여기에서 heroku가 키를 찾지 못하고 하나를 생성하도록 요청한 경우 아니오와 동일한 문제가 있음을 의미합니다. 이와 같이 add 명령을 수행하면 추가 heroku keys:add /root/.ssh/id_rsa.pub할 경로가됩니다. 2 단계에서
  6. git push heroku master지금 시도하십시오

3

Windows 8에서의 나의 길

  1. ssh-keygen이있는 디렉토리를 시스템 PATH 변수에 추가하십시오 (일반적으로 C : \ Program Files (x86) \ Git \ bin).

  2. CMD를 열고 C : \ Users \ Me \로 이동하십시오.

  3. SSH 키 생성 ssh-keygen -t rsa

    키를 저장할 파일을 입력하십시오 (//.ssh/id_rsa) : .ssh / id_rsa (기본 잘못된 경로를 .ssh / somegoodname_rsa로 변경)

  4. Heroku에 키 추가 heroku keys:add

    목록에서 생성 된 키를 선택하십시오.

  5. 앱 디렉토리로 이동하여 아름다운 코드를 작성하십시오.

  6. 자식 저장소 초기화 git init git add . git commit -m 'chore(release): v0.0.1

  7. Heroku 응용 프로그램 만들기 heroku create

  8. 앱 배포 git push heroku master

  9. 앱 열기 heroku open


2

비슷한 문제가 있었고 많은 것을 시도했습니다. 궁극적으로 나를 위해 일한 것은 Windows에 Gnu를 설치하고 ( https://github.com/bmatzelle/gow/releases ) Git이 아닌 해당 디렉토리 내에서 ssh 도구를 사용하고 있는지 확인하는 것이 었습니다. 테스트가 설치되면 (환경 경로에 Git \ bin보다 우선하는지 확인하십시오)

C:\Git\htest2>which ssh
C:\Program Files (x86)\Gow\bin\ssh.BAT

여기에 설명 된대로 퍼티와 미인 대회를 사용했습니다 : http://rubyonrailswin.wordpress.com/2010/03/08/getting-git-to-work-on-heroku-on-windows-using-putty-plink-pageant/

키가 heroku (heroku 키 : add c : \ Users \ Person.ssh \ id_rsa.pub)로 전송되면

ssh -v <username>@heroku.com 

스택이 퍼티를 사용하고 있는지 확인하십시오.

Looking up host "heroku.com"
Connecting to 50.19.85.132 port 22
Server version: SSH-2.0-Twisted
Using SSH protocol version 2
**We claim version: SSH-2.0-PuTTY_Release_0.62**
Using Diffie-Hellman with standard group "group1"
Doing Diffie-Hellman key exchange with hash SHA-1
Host key fingerprint is:
ssh-rsa 2048 8b:48:5e:67:0e:c9:16:47:32:f2:87:0c:1f:c8:60:ad
Initialised AES-256 SDCTR client->server encryption
Initialised HMAC-SHA1 client->server MAC algorithm
Initialised AES-256 SDCTR server->client encryption
Initialised HMAC-SHA1 server->client MAC algorithm
Pageant is running. Requesting keys.
Pageant has 1 SSH-2 keys
Using username "*--ommitted for security--*".
**Trying Pageant key #0**
Authenticating with public key "rsa-key-20140401" from agent
Sending Pageant's response
Access granted
Opened channel for session
Server refused to allocate pty
Server refused to start a shell/command
FATAL ERROR: Server refused to start a shell/command

이전에 실행 중이고 실패한 것 :

C:\Git\htest2>ssh -v <username>@gmail.com@heroku.com
OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007
debug1: Connecting to heroku.com [50.19.85.156] port 22.
debug1: Connection established.
debug1: identity file /c/Users/Person/.ssh/identity type -1
debug1: identity file /c/Users/Person/.ssh/id_rsa type 1
debug1: identity file /c/Users/Person/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version Twisted
debug1: no match: Twisted
debug1: Enabling compatibility mode for protocol 2.0
**debug1: Local version string SSH-2.0-OpenSSH_4.6**
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-cbc hmac-md5 none
debug1: kex: client->server aes128-cbc hmac-md5 none
debug1: sending SSH2_MSG_KEXDH_INIT
debug1: expecting SSH2_MSG_KEXDH_REPLY
debug1: Host 'heroku.com' is known and matches the RSA host key.
debug1: Found key in /c/Users/Person/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /c/Users/Person/.ssh/identity
debug1: Offering public key: /c/Users/Person/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug1: Trying private key: /c/Users/Person/.ssh/id_dsa
debug1: No more authentication methods to try.
Permission denied (publickey).

이것이 Windows 8 (8.1)을 사용하고 있다고 말하면됩니다. 또한 퍼티 조각없이 그것을 사용할 수 있고 ssh-keygen을 사용할 수 있기 때문에 GoW ssh 도구가 핵심 인 것처럼 보입니다.
user3484361

2

다음을 입력하여 새 ssh 키를 작성해야합니다.-ssh-keygen -t rsa

그런 다음 다음을 추가해야합니다.-heroku keys : add

그런 다음 입력하면-heroku open

문제가 해결되었습니다.

어쨌든 그것은 나를 위해 일했다, 당신은 그것을 시도해 볼 수있다 ...


2

동일한 오류가 발생했으며 4 개의 ssh 키가 있으므로 다음을 시도했습니다.

ssh-keygen -t rsa
heroku keys:add

그런 다음 네 가지 옵션이 표시됩니다.

1) github_rsa.pub
2) id_boot2docker.pub
3) id_rsa.pub
4) sshkey.pub

나는 3), 가장 새로운 것을 선택한다

그런 다음 오류를 수정합니다.


1

이 방법을 사용하여이 문제를 해결할 수도 있습니다.

"ssh 에이전트 사용"

  1. 자식 다운로드

http://git-scm.com/

  1. 설치

  2. ssh-agent 활성화

C : \ 프로그램 파일 \ Git \ cmd

start-ssh-agent

상담원이 상담원을 사용하도록 설정 한 후 메시지가 표시됨


1

여기에 보이지 않으므로 다른 솔루션을 추가하고 싶습니다. 내 문제는 heroku가 잘못된 URL과 연결되어 있다는 것입니다 (URL 이름으로 계속 놀고 있기 때문에). 원격 URL을 편집하면 내 문제가 해결되었습니다.

git remote set-url heroku <heroku-url-here>

0

나는 같은 문제가 있었다. 그리고 모두가 말한 것처럼 키를 재설정하려고 시도했지만 여전히 작동하지 않았습니다. 앱 이름을 변경했기 때문입니다.

그래서 내가 한 것은 키를 재설정하고 콘솔에서 응용 프로그램의 이름을 바꾸는 것입니다. 자세한 내용은이 질문을 확인하십시오 : Heroku push app problem


0

그래서 간단한 해결책으로 c : /Users/user_name/.ssh/로 이동하여 모든 pub / private key 쌍을 삭제하십시오.이 방법으로 heroku가 키를 생성합니다.


0

나는 해결할 수없는 비슷한 heroku ssh 오류가 발생했습니다.

이 문제를 해결하기 위해 새로운 heroku http-git 기능 (ssh 대신 "heroku"remote의 http 전송)을 사용했습니다. 자세한 내용은 여기 : https://devcenter.heroku.com/articles/http-git

(짧은 버전 : 프로젝트가 이미 표준 방식으로 설정되어 있다면, heroku git : remote --http-init를 실행하여 "heroku"를 http로 변경하십시오.)

ssh 문제를 해결 / 해결할 시간이없는 경우 빠른 해결 방법이 있습니다.


필자의 경우이 문제는 ssh 원격 경로의 ":"과 관련이있는 것 같습니다. (Windows의 경우 Git 1.9.4) 어떤 이유로 ssh : // git @ host / repo "가 성공하는 동안 ssh : // git @ host : repo가"치명적 : 원격 저장소에서 읽을 수 없음 "으로 실패합니다.
FullTimeCoderPartTimeSysAdmin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.