source

Heroku'Permission denied(공개 키)원격 저장소의 문제에서 읽을 수 없습니다.

nicesource 2023. 8. 17. 21:25
반응형

Heroku'Permission denied(공개 키)원격 저장소의 문제에서 읽을 수 없습니다.

저는 겉보기에 해결하기 쉬운 문제에 대한 해결책을 찾기 위해 여러 시간 동안 계속해서 찾아다녔습니다.제 검색 결과가 아무것도 발견되지 않은 것이 아니라, 제 검색 결과가 너무 다양하게 나왔기 때문입니다. 단 하나도 효과가 없었습니다.

어쨌든, 저는 단순히 제 Mac에서 Heroku 저장소를 밀거나 끌어오거나 가져올 수 없습니다.매번 시도할 때마다 다음과 같은 오류가 발생합니다(마치 나를 조롱하는 것처럼).

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

저는 여러 가지 방법으로 그것을 고치려고 노력했습니다.제가 말씀드렸듯이, 저는 지난 이틀 중 상당 부분을 답을 찾느라 보냈습니다.다음은 제가 시도한 몇 가지 사항입니다.

  • 헤로쿠 키:지우기 다음에 헤로쿠 키:추가
  • 'ssh-keygen-trsa'를 사용하여 SSH 키를 직접 재생성하는 중
  • .ssh 디렉토리를 지운 후 herku 키:clear, ssh 키 생성
  • herku에서 내 앱을 삭제하고 다시 만드는 중(다행히도 거기에는 많은 것이 없었다.

GitHub 저장소에서 정상적으로 가져올 수 있으므로 네트워크 연결이 아니라는 것을 알고 있습니다(ping herku도 작동합니다).

임시 솔루션(영구 솔루션으로 전환되지 않기를 바랍니다)으로 Ubuntu Amazon AWSec2 인스턴스에 로그인했습니다.헤로쿠를 밀고 당기는 동작이 완벽합니다.이러한 이유로, 저는 여전히 문제가 제 Mac의 ssh 키에 있는 것처럼 느껴집니다.두 키 모두 내 헤로쿠 계정에 표시됩니다.키 끝에 있는 이메일 주소가 중요합니까?

편집: GitHub에서 밀고 당길 수 있는데(하지만 SSH를 사용하지는 않습니다), Heroku는 왜 안 되나요?

이 시점에서 저는 무엇이든 시도할 용의가 있습니다.감사합니다!

이미 답변이 완료된 것으로 알고 있습니다.하지만 미래에 다른 사람들에게 도움이 될 수도 있기 때문에 저는 제 솔루션을 추가하고 싶습니다.

일반적인 키 오류는 다음과 같습니다.Permission denied (publickey)다음을 사용하여 이 문제를 해결할 수 있습니다.keys:add헤로쿠에게 당신의 새 열쇠를 알리려고 합니다.

간단히 말해 다음 단계를 수행합니다. https://devcenter.heroku.com/articles/keys

먼저 키가 없는 경우 키를 만들어야 합니다.

ssh-keygen -t rsa

두 번째로 당신은 헤로쿠에 키를 추가해야 합니다.

heroku keys:add

저는 제 질문에 대한 답을 찾았다는 것을 공유하고 싶습니다.

제 문제를 쓰는 것은 저에게 훨씬 더 명확하게 해주었고, 저는 제 문제가 어디에 있다고 생각하는지 더 자세히 조사했습니다: 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 이 좋은 참고 자료가 되었다고 생각합니다.

(윈도우 7에서) 똑같은 오류가 발생했고 원인이 달랐습니다.저는 다른 방법으로 해결했기 때문에 여기에 다른 사람들을 위한 원인과 해결책을 추가해야겠다고 생각했습니다.

비록 그 오류가 정말로 헤루쿠를 가리키는 것처럼 보였지만, 그 오류는 말하고 있었습니다."Heroku can't get to the git repository"모든 서버에서 동일한 키를 생성하여 하나씩 업로드했기 때문에 모든 서버에 동일한 키를 가지고 있다고 맹세했습니다.

이 작업에 거의 하루를 소비한 후에 저는 Git이 실제 키가 아닌 지문만 보여주기 때문이라는 것을 깨달았습니다.제 HD나 헤로쿠에 있는 것과 일치하는 키인지 확인할 수 없었습니다.알려진 호스트 파일을 보고 추측해 봤는데요...각 서버의 키를 보여주며 git와 heruku 공개 키가 일치하지 않음을 명확하게 확인할 수 있었습니다.

는 제, 웹사이트를 키, , github의 키, gitbash의 키, herku의 를 삭제했습니다.heroku keys:clear

여기서 github의 지침에 따라 새 키 쌍을 생성하고 git에 공개 키를 업로드합니다.

사용하여git bash- heroku keys:add헤로쿠에 동일한 키를 업로드합니다.

지금이다git push heroku master작동하다.

정말 악몽입니다, 이것이 누군가에게 도움이 되기를 바랍니다.

브라이언

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

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

    $ cd ~/.ssh
    $ rm id_rsa id_rsa.pub
    
  2. gitHub의 단계에 따라 SSH생성
  3. herku에 로그인하여 새 사이트를 만들고 공용 키를 추가합니다.

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

리눅스 ubuntu에서 동일한 케이스를 가지고 방금 고쳤습니다. OS가 /root/.ssh/와 home/user/.ssh/dir를 혼동한 것 같습니다. 제가 한 일은 다음과 같습니다.

  1. 루트 및 home/user.dll 디렉토리에서 모든 키를 제거했습니다.
  2. 키를 생성했습니다. 생성 경로(/home/you/.dll/id_message) 또는 (/root/.dll/id_message)에 주의하십시오.
  3. 키 헤루쿠를 합니다.heroku keys
  4. 만약 열쇠가 거기에 있다면,heroku keys:clear
  5. heroku keys:add권리를 했는데, 나와 있다는 것을 한다면, 이를▁this▁▁add▁like▁now▁if▁here▁do▁hero▁the▁in▁andku▁couldn▁as,▁have명▁asked세요을하령가추,▁one▁no▁to▁you▁right게이렇▁and,▁the▁generate▁this다heroku keys:add /root/.ssh/id_rsa.pub추가할 경로는 2단계에서 얻은 경로가 됩니다.
  6. 라해를 해 보다git push heroku master지금이다

Windows 8에 대한 나의 방식

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

  2. CMD를 열고 C:로 이동합니다.\사용자\나\

  3. 키 생성하기ssh-keygen -t rsa

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

  4. 헤로쿠에 키 추가 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

비슷한 문제가 있었고, 많은 것을 시도했습니다.궁극적으로 저에게 효과가 있었던 것은 Windows에 Gnu를 설치하는 것이었습니다(https://github.com/bmatzelle/gow/releases) . 그리고 Git가 있는 디렉토리가 아니라 디렉토리 내에서 ssh 도구를 사용하고 있는지 확인하는 것이었습니다.설치한 후에는 (사용자 환경의 PATH가 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/

일단 키가 herku(heroku 키:c:\Users\Person 추가)로 전송되면,ssh\id_ssh.ssh), 사용

ssh -v <username>@heroku.com 

스택이 Putty - 즉, 작업 스택을 사용하고 있는지 확인합니다.

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

다음을 입력하여 새 ssh 키를 생성해야 합니다. -ssh-keygen -trsa

그러면 추가해야 합니다: - heruku 키: 추가

그러면 당신이 - 헤로쿠를 입력하면.

문제가 해결되었습니다.

어쨌든 저한테는 효과가 있었어요. 한 번 해보세요.

동일한 오류가 발생했으며, SSH 키가 4개이기 때문에 다음을 시도했습니다.

ssh-keygen -t rsa
heroku keys:add

다음과 같은 4가지 옵션이 표시됩니다.

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

3), 최신 제품을 선택합니다.

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

나는 이 문제를 해결하기 위해 이 방법을 사용합니다. 아마도 당신은 그것을 시도할 수 있을 것입니다.

"SSH-에이전트 사용"

  1. 깃 다운로드

http://git-scm.com/

  1. 설치

  2. ssh-agent 사용

C:\Program Files\Git\cmd

시작-시작-시작-시작-시작-에이전트

에이전트를 활성화한 후 메시지가 사라집니다. 이것이 도움이 되길 바랍니다.

저는 여기서 보지 못했기 때문에 다른 해결책을 추가하고 싶습니다.저의 문제는 herku가 잘못된 url에 링크하고 있다는 것이었습니다(url 이름을 계속 가지고 놀았기 때문에).원격 URL을 편집하여 문제가 해결되었습니다.

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

저도 같은 문제가 있었습니다.그리고 모두의 말대로 키를 재설정하려고 했지만 여전히 작동하지 않았습니다.왜냐하면 앱 이름을 바꿨기 때문입니다.

그래서 제가 한 일은 키를 재설정하고 콘솔에서 앱 이름을 변경하는 것이었습니다.자세한 내용은 이 질문을 참조하십시오.Heroku 푸시 앱 문제

그래서 간단한 해결책은 c:/Users/user_name/.ssh/로 이동하여 모든 pub/private 키 쌍을 삭제하면 herku가 키를 생성합니다.

저는 제가 해결할 수 없는 비슷한 herkush 오류가 있었습니다.

해결 방법으로 저는 새로운 herku http-git 기능(sh 대신 "heroku" 리모트용 http transport)을 사용했습니다.자세한 내용은 https://devcenter.heroku.com/articles/http-git 를 참조하십시오.

(짧은 버전: 프로젝트가 이미 표준 방법을 설정한 경우 herkugit:remote --http-init을 실행하여 "heroku" 원격을 http로 변경합니다.)

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

언급URL : https://stackoverflow.com/questions/17626944/heroku-permission-denied-publickey-fatal-could-not-read-from-remote-reposito

반응형