読者です 読者をやめる 読者になる 読者になる

opamp_sando's blog

クソザコが割りと適当なことを書くためにある備忘録です。あとたまに普通の日記も書きます

Herokuで鍵がPermission denied (publickey). になる時

前にTwitterでHerokuなるものを知ってアカウントとっていざ使うってなったのはいいけどどうしてもgit pushのところでパーミッションエラーが起きてしまった。

問題だと思われる原因は2つある。 1つは単純にpublic keyの登録を忘れている。それなら

$ heroku keys:add

を使えばすぐ解決する。

もう一つは ~/.ssh/configに設定をしてない場合に発生する。

今回のうちの問題は後者だった。

うちの~/.ssh/configを晒すと

Host github.com
 User git
 port 22
 Hostname github.com
 IdentityFile ~/.ssh/github_id_rsa
 TCPKeepAlive yes
 IdentitiesOnly yes

Host heroku.com
 User git
 port 22
 Hostname heroku.com
 IdentityFile ~/.ssh/heroku_id_rsa
 TCPKeepAlive yes
 IdentitiesOnly yes

となっている。 最初はgithubの文しかなかったがherokuを使うにあたって上のような行を加えた。
IdentityFileにはHerokuで使う鍵の名前をいれる。
見ればわかると思うけどうちの環境はssh-keygenの時に鍵の名前をheroku-id-rsaにしてるよ。

まあ、たぶんgithubにgitを設定してしまってたからgit pushするときにgithubの鍵をみちゃってたんだと思う。

あとは上のを丸写しすればおk。

これで

$ git push heroku master

とすればいけるはず。

こうするとgithubで使う鍵,herokuで使う鍵とか分けて管理できるので便利。

http://heroku-testing-app01.heroku.com/

Firefox ブラウザ無料ダウンロード