QA@IT

git push masterすると「The remote end hung up unexpectedly」となって失敗する

6716 PV

herokuにアプリケーションコードをデプロイしようとしたのですが、以下のエラーメッセージが表示されてデプロイすることができません。

解決方法を教えてください。

$ git push heroku master

 !  Your key with fingerprint 3d:b6:47:c4:61:a5:19:72:29:b4:d4:fd:a7:e2:23:9d is not authorized to access simple-day-5450.

fatal: The remote end hung up unexpectedly

回答

もし鍵の名前を変えてある場合は、.ssh/configに以下のように書くと良いです。

Host heroku.com
 IdentityFile ~/.ssh/heroku_id_rsa
編集 履歴 (0)

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

~/.sshid_rsaid_rsa.pub があるか確認し、なければつくる

heroku にアプリケーションをデプロイする際にはgitを利用します。そのときgit はsshを用いてheroku に接続しようとするので、heroku に適切な公開鍵が登録されている必要があります。

通常は何もしなくても鍵の登録は行われるのですが、RSA鍵が~/.sshにない場合などは鍵の登録が行われていない状態になり、heroku apps:create などのAPIは正常に動作するものの、git push が行えないことになります。

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

heroku に公開鍵を登録する

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

編集 履歴 (1)
ウォッチ

この質問への回答やコメントをメールでお知らせします。