heroku 코드를 배포 할 때 권한이 거부되었습니다 (공개 키). 치명적인 : 원격 끝이 예기치 않게 끊어졌습니다. 명령 줄을 사용하여 코드를 heroku에

다음 명령 줄을 사용하여 코드를 heroku에 배포하려고합니다.

git push heroku master

그러나 다음과 같은 오류가 발생합니다.

Permission denied (publickey).
fatal: The remote end hung up unexpectedly

이미 공개 SSH 키를 업로드했지만 여전히이 오류가 발생합니다.



답변

Heroku에 공개 키를 업로드해야합니다.

heroku keys:add ~/.ssh/id_rsa.pub

공개 키가없는 경우 Heroku는 자동으로 원활하게 작동하는 키를 추가하라는 메시지를 표시합니다. 그냥 사용하십시오 :

heroku keys:add

이전 키를 모두 지우려면 다음을 수행하십시오.

heroku keys:clear

기존 키를 모두 표시하려면 다음을 수행하십시오.

heroku keys

편집하다:

위의 내용은 저에게 효과적이지 않은 것 같습니다. HOME환경 변수로 엉망이 되어 SSH가 잘못된 디렉토리에서 키를 검색했습니다.

SSH가 올바른 디렉토리에서 키를 확인하도록하려면 다음을 수행하십시오.

ssh -vT git@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/Wrong/Directory/.ssh/identity type -1
debug1: identity file /c/Wrong/Directory/.ssh/id_rsa type -1
debug1: identity file /c/Wrong/Directory/.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/Wrong/Directory/.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/Wrong/Directory/.ssh/identity
debug1: Trying private key: /c/Wrong/Directory/.ssh/id_rsa
debug1: Trying private key: /c/Wrong/Directory/.ssh/id_dsa
debug1: No more authentication methods to try.

Permission denied (publickey).

당신이 위의가에있는 키에 대한 그 SSH의 모습을 관찰 할 수에서 /c/Wrong/Directory/.ssh우리는 우리가 Heroku가 (사용에 추가하는 공개 키를 가지고 어디하지 않은 디렉토리 heroku keys:add ~/.ssh/id_rsa.pub) ( 제발 노트 창에서 OS가 있음을 ~받는 의미 HOME에서 이길 경로 팔분의 칠 이다C:\Users\UserName )

현재 홈 디렉토리를 보려면 다음을 수행하십시오. echo $HOME또는 echo %HOME%(Windows)

HOME디렉토리를 올바르게 설정하려면 ( .sshssh가 올바른 디렉토리에서 키를 찾을 수 있도록 디렉토리의 상위 디렉토리를 올바르게 의미합니다 ) 다음 링크를 참조하십시오.

  1. SO 유닉스 환경 변수를 영구적으로 설정하는 방법에 대한 답변

  2. SO ssh가 잘못된 디렉토리에서 키를 찾는 것에 대한 질문과 그에 대한 해결책.


답변

나는 같은 문제가 있었고 아래 단계가 나를 위해 일했습니다.

->heroku login

abc@gmail.com 및 비밀번호

->cd C:\Users\yourusername\.ssh    (OR for cygwin shell ->cd ~/.ssh)

->ssh-keygen -t rsa -f id_rsa

암호 문구를 묻는다면 공백을 사용하지 말고 암호 문구를 채우 되 잊지 마십시오.

키를 생성 한 후 키를 추가해야합니다.

$ ssh-add

그리고 헤 로쿠에게

->heroku keys:add "id_rsa.pub"

디렉토리를 작업 공간으로 변경하십시오.

->git clone git@heroku.com:stark-dawn-1234.git -o heroku

위에서 설정 한 암호를 사용하십시오.


실제로 나는 또한 아래 파일을 제거하지만 파일이 imp인지 확실하지 않습니다.

C : \ Users \ yourusername.heroku \ credientals 및 C : \ Users \ yourusername.ssh \ known_hosts


답변

이 문제는 며칠 동안 엉망이었습니다.

도움이 될 수 있습니다.

1) 지금 Heroku에 어떤 키가 있는지 확인하십시오.

$ heroku keys
=== 1 key for joe@example.com
ssh-dss AAAAB8NzaC...DVj3R4Ww== joe@workstation.local

2) ~ / .ssh / config 파일을 빌드하십시오.

$ sudo vim ~/.ssh/config

이 정보로 편집

Host heroku.com
Hostname heroku.com
Port 22
IdentitiesOnly yes
IdentityFile ~/.ssh/ssh-dss # location and name of your private key
TCPKeepAlive yes
User joe@workstation.local


답변

다음은 ssh 키를 관리하는 방법을 설명하는 링크입니다. https://devcenter.heroku.com/articles/keys#adding-keys-to-heroku


답변

공개 키가 없었기 때문에 같은 문제가 발생했습니다.

heroku keys:clear
heroku keys:add

공개 키를 생성하고 잘 작동합니다.


답변

Windows 사용자라면 다른 솔루션으로 문제를 해결할 수 없습니다.

Windows 7 64-Bit + Git-1.7.7.1-preview20111027을 사용하고 해결책은 내 키를에서 C:\users\user\.ssh로 복사하는 것이 었 습니다 C:\Program Files (x86)\Git\.ssh. 이 git 클라이언트가 heroku로 푸시 할 때 키를 찾는 곳입니다.

이게 도움이 되길 바란다.


답변

이것은 나를위한 해결책이었습니다.

ssh-add ~/.ssh/my_heroku_key_rsa