CapistranoでEC2にRailsアプリをデプロイしようとしたときにこのエラーが出ました。

Permission denied(publickey)

この記事にあるように考えられる原因は以下3点かなと思いました。

EC2のSSH接続でPermission denied(publickey)と出た時の対処法

次の3パターンが考えられる
1. 間違った鍵で接続しようとしている。キーペアは正しいか確認する
2. 間違ったユーザー名で接続しようとしている。正しいユーザー名かどうか確認する
3. ホスト名が間違っている。ホスト名が正しいかどうか確認する。

 

しかしどれも問題ありませんでした。

結局原因はEC2に置いてある秘密鍵にパスフレーズが設定されていたからでした。

秘密鍵を生成する時にパスフレーズを求められますがここをブランクのままエンターを押しておけばよかったというだけ。

$ ssh-keygen -t rsa
省略
Enter passphrase (empty for no passphrase):