Heroku で git push で Permission denied (publickey). のエラーが発生 (windows)

git pushするわけですが何をしてもPermissionエラーなわけですよ。もう何が原因かさっぱりだったのですがもう一度じっくりしたら出来たので備忘録を書いておきます。

環境
・OS: Windows XP 
・Ruby: 1.9.2p290 (2011-07-09) [i386-mingw32]
・git :  1.7.7.GIT (msysgit)

 

エラーは、GitPushすると出てくるわけです。

>git push heroku master
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

 

色々サイトを見るとSSHの公開鍵を作りなおすとか色々あったのですが私の場合には ssh-add でキーを指定していないことでパスフレーズを登録していない状態でも使えるようにしていないのが問題だったみたい。

とりあえず最初のキーを作るところから

ssh-keygen -t rsa -C "[email protected]"
Generating public/private rsa key pair.
Enter file in which to save the key:
Enter passphrase (empty for no passphrase):

これでキーが作成されます。パスなどのエラーが出るようであれば -f でパスを指定します。暗号方式は rsa でも dsa でもどちらでも問題ないようです。既にKeyがある場合では不要ですが色々見ているとmsysgitの付属で作成したほうが良い感じのことが買いてあるところもありました

>ssh-agent cmd
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
>ssh-add
>ssh-add -l
Could not open a connection to your authentication agent.

ここで先程作成した(または作成してある公開鍵をフルパスで指定します。その際にパスフレーズを聞かれるので答えておきます

>ssh-add "C:\Documents and Settings\USER\.ssh\id_dsa"
Enter passphrase for C:\Documents and Settings\USER\.ssh\id_dsa:
Identity added: C:\Documents and Settings\USER\.ssh\id_dsa (C:\Documents and
Settings\USER\.ssh\id_dsa)

登録されている事を確認します。

>ssh-add -l
1024 b4:76:79:7c:7d:41:48:a4:d1:92:c5:07:7f:22:50:71 C:\Documents and Settings\
046536\.ssh\id_dsa (DSA)

herokuの設定はできているもので進めます。このあとにキーを登録します。

>heroku keys:add 公開鍵のフルパス

登録されているかを確認します。

>heroku keys
=== 1 key for "[email protected]"
ssh-dss AAAAB3NzaC...*******== "[email protected]"

ここまで出来ればあとは再度 git push を試してみますと無事に出来ました

>git push heroku master
Counting objects: 21, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (18/18), done.
Writing objects: 100% (21/21), 7.84 KiB, done.
Total 21 (delta 0), reused 0 (delta 0)

-----> Heroku receiving push
-----> Node.js app detected
-----> Fetching Node.js binaries
-----> Vendoring node 0.4.7
-----> Installing dependencies with npm 1.0.94

参考

上部へスクロール