ayuminのあまり更新しないBlog

筆不精なのでめったに更新しません

git push heroku master で失敗したときの対処法

先日 Web・ITのスキルアップトレーニングサービス・プロバイダー|mswave にて、herokuにデプロイするアプリケーションのpush で失敗する人が結構な人数いたのでその対処法を書いておきます。

Heroku Toolbelt をつかってgit をインストールしただけではgit側の設定がきちんと行わてないことがあり、リモートリポジトリ(この場合はheroku)にソースコードをpushしようとしたときに失敗することがあります。これは、herokuの問題というよりgit の問題ですが、もっと言えばsshの問題です。なのでsshの設定を確認する必要があります。

~/.ssh にid_rsaとid_rsa.pubがあるか確認し、なければつくる

herokuにアプリケーションをデプロイする際にはgitを利用します。そのときgit はsshを用いてherokuに接続しようとするので、herokuに適切な公開鍵が登録されている必要があります。
通常は何もしなくても鍵の登録は行われるのですが、RSA鍵が~/.sshにない場合などは鍵の登録が行われていない状態になり、heroku apps:create などのAPIは正常に動作するものの、git pushが行えないことになります。

まずは、./ssh に id_rsa と id_rsa.pub があることを確認しましょう。ない場合は作る必要があります。ssh-keygen -t rsa コマンドで RSA鍵のペアを作成してください。

heroku に公開鍵を登録する

その後 heroku に公開鍵を登録します。heroku login でherokuのアカウントにログインした後heroku key:add で公開鍵を登録を行います。これでssh経由でherokuにアクセスできるようになったはずです。もう一度 git push heroku master をしてみてください。

うまくいきましたか??