다음 명령 줄을 사용하여 코드를 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
디렉토리를 올바르게 설정하려면 ( .ssh
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