herokuでpushしようとしたらPermission deniedとなってしまう

heroku-logo-dark-300x100

Getting Started with Rails 3.xを見ながらherokuにRails3アプリをデプロイしようとしたら「Permission denied (publickey).」と怒られてしまった。公開鍵の設定に何やら問題があるみたいなので調べてみた。

エラーが出た時のログはこんな感じ。「git push」でエラーが出てしまってデプロイできない。

https://gist.github.com/daipresents/36c79ed3d4814c01dd7d60a9464a8523.js?file=gistfile1.txt

環境はMac(MBA)。改めてherokuデプロイまでの手順を確認した。まずは、heroku toolbeltをインストールして、herokuとSSH通信するために公開鍵を準備する。

https://gist.github.com/daipresents/36c79ed3d4814c01dd7d60a9464a8523.js?file=gistfile2.txt

「/Users/yourname/.ssh/heroku_rsa」という名前で保存。あわせて「heroku_rsa.pub」という鍵もできる。passphraseは忘れないように覚えておくこと。herokuにデプロイするときに度々聞かれる。次に鍵をherokuに登録。

https://gist.github.com/daipresents/36c79ed3d4814c01dd7d60a9464a8523.js?file=gistfile3.txt

鍵の場所を指定しない場合は、.ssh以下の鍵を自動で探すみたいです。鍵を確認してみる。

https://gist.github.com/daipresents/36c79ed3d4814c01dd7d60a9464a8523.js?file=gistfile4.txt

成功していれば、さっきのメールアドレスが表示されるはず。余計な鍵があれば以下のコマンドで削除可能。

https://gist.github.com/daipresents/36c79ed3d4814c01dd7d60a9464a8523.js?file=gistfile5.txt

さらに、以下のコマンドも必要みたい。

https://gist.github.com/daipresents/36c79ed3d4814c01dd7d60a9464a8523.js?file=gistfile6.txt

また、githubの公開鍵もあるので、使い分けるために以下の設定を「~/.ssh/config」に記述する。

https://gist.github.com/daipresents/36c79ed3d4814c01dd7d60a9464a8523.js?file=gistfile7.txt

鍵の設定についてはManaging Your SSH Keysにもちょっとだけ書いてあった。鍵問題はこれで解決したみたいなので、ためしにpushしてみる。

https://gist.github.com/daipresents/36c79ed3d4814c01dd7d60a9464a8523.js?file=gistfile8.txt

どうも何回もheroku createしたので、アプリが大量にherokuに登録されていた。いらないものを削除。リモートのリポジトリを確認。

https://gist.github.com/daipresents/36c79ed3d4814c01dd7d60a9464a8523.js?file=gistfile9.txt

いらないアプリがあれば削除

https://gist.github.com/daipresents/36c79ed3d4814c01dd7d60a9464a8523.js?file=gistfile10.txt

次からは「heroku create」時にアプリ名をつけたほうがいい気がした。

https://gist.github.com/daipresents/36c79ed3d4814c01dd7d60a9464a8523.js?file=gistfile11.txt

これでようやくpush成功

https://gist.github.com/daipresents/36c79ed3d4814c01dd7d60a9464a8523.js?file=gistfile12.txt