다음 명령 줄을 사용하여 코드를 heroku에 배포하려고합니다.
git push heroku master
그러나 다음과 같은 오류가 발생합니다.
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
이미 공개 SSH 키를 업로드했지만 여전히이 오류가 발생합니다.
heroku login
전자 메일과 암호를 작성하고 다시 시도하기 만하면됩니다.
다음 명령 줄을 사용하여 코드를 heroku에 배포하려고합니다.
git push heroku master
그러나 다음과 같은 오류가 발생합니다.
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
이미 공개 SSH 키를 업로드했지만 여전히이 오류가 발생합니다.
heroku login
전자 메일과 암호를 작성하고 다시 시도하기 만하면됩니다.
답변:
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 keys:add
ssh-keygen -t rsa -C "your_email@youremail.com"
또 다른 file.pub를 생성하고이 답변에서 권장 명령이 하나를 사용하는 오류를 가진 경우
나는 같은 문제가 있었고 아래 단계가 나를 위해 일했습니다.
->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
Github for Windows
있지만 id_rsa 파일이 없기 때문이라고 생각 합니다.
git bash
ssh-keygen을 실행하려면 명령 프롬프트 에서이 작업을 수행해야했습니다 . 감사.
이 문제는 며칠 동안 엉망이었습니다.
도움이 될 수 있습니다.
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
User
마지막 줄 에는 줄 바꿈이 있어야합니다 . 또한 #
주석 에 대해 불평 했기 때문에 방금 주석을 제거했습니다.
host
정보를 구성 파일에 추가하면 문제가 해결되었습니다. heroku rsa 키를 만들었으며 heroku.pub에 대한 기본 권한에서 오류가 발생했습니다 git push
. 나는 chmod 600 heroku.pub
그것을 밀어 넣었을 때 효과가있었습니다.
IdentityFile ~/.ssh/ssh-dss
개인 키 의 경로 입니다. 공개 키가 아닌 여기에 개인 키 를 입력하려고합니다 .
다음은 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
chmod 600 ~/.ssh/heroku_rsa
이미 키를 업로드 한 경우 키를 제거한 다음 새 키로 다시 업로드하십시오.
heroku keys:remove //removes the existing key
ssh-keygen -t rsa //generates a new key in ~/.ssh folder
heroku keys:add //uploads the new key, if no arguments r passed then the key generated
//in default directroy i.e., ~/.ssh/id_rsa is uploaded
git push heroku
이 작동합니다.
Must specify KEY to remove
나는 가능한 모든 조합을 시도하여 3 일 동안 자신을 죽여서이 기능을 사용 하려고 했습니다. 마침내 DSA 키를 만들어 보았습니다 .
RSA 대신 DSA를 사용해보십시오.
(우분투 11.10, 루비 1.8.7, 헤 로쿠 2.15.1을 사용하고 있습니다)
Windows 7,64 비트에서 위의 솔루션 (Onur Turhan 's)은 아래와 같이 약간의 변경으로 나를 위해 일했습니다.
C:\Users\MyName > heroku login
이메일 / 비밀번호 입력
C:\Users\MyName >ssh-keygen -t rsa -f id_rsa
이것은 내 c : \ Users \ MyName 디렉토리 (.ssh 디렉토리에 없음)에 두 개의 파일 (id_rsa 및 id_rsa.pub)을 생성했습니다.
heroku keys:add id_rsa.pub
git clone git@heroku.com:some-heiku-xxxx.git -o heroku
올바른 "id_rsa.pub"파일을 추가하는 것이 가장 중요하다고 생각합니다. keygen을 사용하여 공개 키를 생성 한 후 타임 스탬프가 생성 된 시점을보고 올바른 키를 추가하고 있는지 확인하십시오.
TortoiseGIT를 컴퓨터에 설치했을 때이 문제가 발생했습니다. 환경 변수 GIT_SSH
를
"c:\Program Files\TortoiseGit\bin\TortoisePlink.exe"
에
"c:\Program Files (x86)\Git\bin\ssh.exe"
그리고이 자습서를 다음 ssh-keygen
과 keys:add
, 그것을 작동합니다!
밀기가 나를 위해 일하고 있었고 갑자기 멈췄습니다.
heroku api에 가동 중지 시간이 발생하면 푸시하려고 할 때이 오류가 발생합니다.
검사:
너무 열심히하기 전에.
위의 답변은 작동하지만 작동하기 전에 몇 가지 추가 단계를 수행해야한다는 것을 알았습니다.
Windows 7에서 위에서 언급 한 모든 것을 시도했지만 여전히 작동하지 않는 모든 사람들을 위해 여기에 내가 한 일이 있습니다 .- Git 디렉토리 C : \ Program Files (x86) \ Git \ (don '에서 GitBash.exe를여십시오. t 명령 프롬프트를 열면 작동하지 않습니다). - 위에서 언급 한대로 다음을 추가 하되 #를 삭제해야합니다.
Host heroku.com
Hostname heroku.com
Port 22
IdentitiesOnly yes
IdentityFile ~/.ssh/ssh-dss
TCPKeepAlive yes
User joe@workstation.local
이제 git push heroku master를 실행 하면 작동합니다.
당신 것 같은데 ~/.ssh/authorized_keys
파일이 올바르게 설정되지 않았습니다. 다음을 확인하십시오.
~/.ssh
은 0700입니다.heroku에 대한 .ssh 구성을 확인하십시오. .ssh 폴더로 이동하여 구성 파일을 엽니 다
cd ~/.ssh
subl config
'subl'은 Sublime Text 용이지만 원하는 편집기를 사용할 수 있습니다. "IdentityFile"줄을 찾아서 공개 키가 아닌지 확인하십시오.
IdentityFile "/Users/ircmullaney/.ssh/my_ssh"
아니
IdentityFile "/Users/ircmullaney/.ssh/my_ssh.pub"
그것은 나를 위해 그것을했다. 구성 파일에 공개 버전이있는 이유를 모르겠지만 오류가 발생했습니다.
Permissions 0644 for '/Users/ircmullaney/.ssh/my_ssh.pub' are too open.
이 모든 아이디어를 시도한 후에도 여전히 문제가있었습니다. 이것은 내 문제였다.
내 원격 heroku 저장소가 작동했습니다. 다음과 같이 새로 고쳤습니다.
git remote -v
그런 다음 잘못된 heroku를 제거하십시오.
git remote rm heroku
그런 다음 새로운 것을 추가하십시오
git remote add heroku git@heroku.com:sitename.git
앱의 Heroku 설정 페이지에서 사이트 이름을 얻을 수 있습니다. 행운을 빕니다!
내가 직면 한 문제는 Windows에서 발생했으며 "heroku keys : add"를 실행할 때마다 github 키를 선택했습니다. 문제를 해결하기 위해 수행 한 단계는 다음과 같습니다.
위의 명령은 새 키를 생성하도록 요청했으며 출력은 기존 공개 키를 찾을 수 없습니다. 하나를 생성 하시겠습니까? [Yn] Y 새로운 SSH 공개 키 생성. SSH 공개 키 C : / Documents and Settings / Admin / .ssh / id_rsa.pub 업로드 중 ... 완료! 'heroku'gem은 더 이상 사용되지 않으며 https://toolbelt.heroku.com 에서 다운로드하여 설치하는 Heroku Toolbelt로 대체되었습니다 .
위 명령은 다음과 같은 출력을 제공하지 않습니다. 기존 공개 키 발견 : C : / Documents and Settings / Admin / .ssh / id_rsa.pub SSH 공개 키 C : / Documents and Settings / Admin / .ssh / id_rsa.pub 업로드 중. 완료
위의 단계를 사용하여 문제를 해결하고 클라우드에 응용 프로그램을 배포 할 수있었습니다.
나는 같은 문제를 겪고 있었다. 다음 단계를 수행하면 도움이됩니다.
.pub
파일 (모든 파일 및 know_host
)을.ssh/ folder
Permission denied (publickey).
처음에는 숨겨진 파일이 Mac에 표시되는지 확인하십시오. 그렇지 않은 경우 :
defaults write com.apple.Finder
AppleShowAllFiles TRUE
killall Finder
다음 단계:
Users/user_name/.ssh/
모든 파일 제거 합니다.ssh-keygen -t dsa
heroku keys:add ~/.ssh/id_dsa.pub
NB Mac OSX 10.7.2 Lion에서 해냈습니다. 다른 절차에서도 절차가 동일해야하지만.
dmajkic의 솔루션이 마침내 나를 도와줍니다.
Windows 사용자의 경우 git client가 키를 찾지 못했습니다. c : \ Users \ UserName.ssh \에서 키를 확인하십시오! 환경 변수 HOME = c : \ Users \ UserName \