- 更新日: 2013年9月3日
- Rails
heroku を久々使おうとしたら Permission denied (publickey) エラー
Rails4 のバージョンの Ruby on Rails チュートリアル:実例を使ってRailsを学ぼう – Michael Hartl (マイケル・ハートル) を読み始めたのですけど、heroku にデプロイする箇所があって heroku を久々に使ったら色々エラーが出たので備忘録。rails を使うの rails2 以来使ってなくて、かなり忘れちゃったので復習してます。なにしろ rails 3 は全然使ってないし、heroku はものすごい久しぶりに使ったりで、一直線には進みません。
以下作業は、Mac にて。
heroku にログインはできるが…
まずはログインして、heroku で新しいアプリを作成する。
1 2 3 4 5 6 7 |
$ heroku login Enter your Heroku credentials. Email: Password (typing will be hidden): Authentication successful. |
ログインはできた模様。
1 2 3 4 5 6 |
$ heroku create Creating your-app-0000... done, stack is cedar http://your-app-0000.herokuapp.com/ | git@heroku.com:your-app-0000.git Git remote heroku added |
heroku create もできた。
git push heroku master でこける
続いてローカル側で git 管理下の rails アプリのひな形を作成済みなので git push heroku master。
1 2 3 4 5 6 7 8 9 |
$ git push heroku master The authenticity of host 'heroku.com (50.19.85.132)' can't be established. RSA key fingerprint is 8b:48:5e:67:0e:c9:16:47:32:f2:87:0c:1f:c8:60:ad. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'heroku.com,50.19.85.132' (RSA) to the list of known hosts. Permission denied (publickey). fatal: The remote end hung up unexpectedly |
ここで Permission denied (publickey). のエラー。
1 2 3 4 5 |
$ git push heroku master Permission denied (publickey). fatal: The remote end hung up unexpectedly |
もう一回やってもエラー。
ssh 鍵を作りなおして heroku に登録
ssh 鍵を作りなおして、公開鍵を heroku に登録します。
1 2 3 4 5 |
$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/Users/user/.ssh/id_rsa): /Users/user/.ssh/heroku_rsa |
/Users/user/.ssh/heroku_rsa という名前で公開鍵・秘密鍵を生成します。パスフレーズも聞かれるので入力。
その後、公開鍵を heroku に登録。
1 2 3 |
$ heroku keys:add ~/.ssh/heroku_rsa.pub |
~/.ssh/config に heroku への ssh 接続情報を追記。
1 2 3 4 5 6 7 8 9 10 |
$ vi ~/.ssh/config Host heroku.com User git port 22 Hostname heroku.com IdentityFile ~/.ssh/heroku_rsa TCPKeepAlive yes IdentitiesOnly yes |
上記を ~/.ssh/config 末尾に追加します。
改めて git push heroku master
改めて、git push。
1 2 3 |
$ git push heroku master |
初回はパスフレーズを聞かれるので入力。
これで git push は通るようになりましたが、今度はデプロイ時にまた違うエラー発生。
1 2 3 4 5 6 7 8 9 10 11 12 |
$ git push heroku master ... ! Precompiling assets failed. ! ! Push rejected, failed to compile Ruby/Rails app To git@heroku.com:your-app-0000.git ! [remote rejected] master -> master (pre-receive hook declined) error: failed to push some refs to 'git@heroku.com:your-app-0000.git' |
Precompiling に失敗したと、面倒くさ。心が折れそうになるけどググる。
Heroku Rails 4 / Ruby 2.0.0 Deploy Fail, Production Database is not connectable – Stack Overflow
Heroku Labs: user-env-compile | Heroku Dev Center
あたりの情報を頼りに、以下の作業。
1 2 3 4 5 |
$ vi config/application.rb # for heroku deploy config.assets.initialize_on_precompile = false |
以上を config/application.rb の末尾に追記して、git commit。
1 2 3 |
$ git commit -a -m "Update config/application.rb for Heroku" |
その後、ユーザー環境でのコンパイルを可能にしとく。
1 2 3 4 5 6 |
$ heroku labs:enable user-env-compile -a your-app-0000 Enabling user-env-compile for your-app-0000... done WARNING: This feature is experimental and may change or be removed without notice. For more information see: http://devcenter.heroku.com/articles/labs-user-env-compile |
うーん、なんか警告出たけどまあいいや、先に進みます。
再び git push。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
$ git push heroku master ... -----> Writing config/database.yml to read from DATABASE_URL Error detecting the assets:precompile task -----> WARNINGS: Removing `vendor/bundle`. Checking in `vendor/bundle` is not supported. Please remove this directory and add it to your .gitignore. To vendor your gems with Bundler, use `bundle pack` instead. -----> Discovering process types Procfile declares types -> (none) Default types for Ruby/Rails -> console, rake, web, worker -----> Compiled slug size: 34.5MB -----> Launching... done, v5 http://your-app-0000.herokuapp.com deployed to Heroku To git@heroku.com:your-app-0000.git * [new branch] master -> master |
WARNINGS 出てますけど、ようやくデプロイできたみたいです。
http://your-app-0000.herokuapp.com deployed to Heroku
の行で表示されている URL でアクセス。とりあえず heroku を使う予定はないし、これ以上の深追いはせずいったん終了です。
- – 参考リンク –
- Herokuを久々に使ってみようとして – 日々常々
- ソースコードから理解する技術-UnderSourceCode git push heroku master で Permission denied (publickey).
- Herokuで鍵がPermission denied (publickey). になる時 – opamp_sando’s blog
- Rails の関連記事
- RailsでMySQLパーティショニングのマイグレーション
- Rails ActiveRecordでdatetime型カラムのGROUP BY集計にタイムゾーンを考慮する
- RailsプラグインGemの作成方法、RSpecテストまで含めたrails pluginの作り方
- RailsでAMPに対応するgemをリリースしました
- Railsでrequest.urlとrequest.original_urlの違い
- Railsでwheneverによるcronバッチ処理
- Google AnalyticsのRails Turbolinks対応
- Railsアプリにソーシャル・シェアボタンを簡単設置
- Rails監視ツール用にErrbitをHerokuで運用
- Facebook APIバージョンのアップグレード手順(Rails OmniAuth)
Leave Your Message!