LoginSignup
0
0

More than 3 years have passed since last update.

【Rails6】Capistranoでのデプロイ時、CircleCI仮想環境からEC2へのSSH接続に失敗する

Last updated at Posted at 2020-10-11

事象

Capistranoでのデプロイ時、CircleCI仮想環境からEC2へのSSH接続に失敗する

Net::SSH::AuthenticationFailed: Authentication failed for user *****@*************

Image from Gyazo

前提

CircleCIの導入については以下の記事を参考にさせていただいたので、
記事の内容通りに実施してSSHが失敗したという前提で進めていきます。

CircleCI + Capistrano + AWS(EC2) + Railsで自動デプロイしてみた

結論

CircleCIに設定していた環境変数(PRODUCTION_SSH_KEY)が誤っておりました。
.circleci/config.yml内の記述-add_ssh_keys:によって、
CircleCIのコンテナ上に作成される秘密鍵の名称は「id_rsa_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX」であるため、
CircleCIに設定する環境変数は、「id_rsa_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX」が正解でした。
筆者はここで約2日悩まされることになりました。笑
※「XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX」の部分はfingerprintsの:なし文字列

詳細

筆者は以下のようにCircleCIに環境変数(PRODUCTION_SSH_KEY)を設定しておりました。
「~/.ssh/hoge_rsa_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX」
※hoge_rsaはローカルからEC2へSSH接続するための秘密鍵

原因調査のために、CircleCIコンテナにSSH接続。
※CircleCIコンテナへのSSH接続については公式ドキュメント「SSH を使用したデバッグ」をご参照ください

~/.sshディレクトリを覗いてみると、、、
Image from Gyazo

!!!!!!!!!!!!!!!!!!!!!!!!

id_rsa_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

だと、、、
「hoge_rsa_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX」じゃない、、、
まさか、、、

というわけでCircleCIの環境変数(PRODUCTION_SSH_KEY)に
「id_rsa_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX」を設定し直したところ、
無事にCircleCI仮想環境からEC2へのSSH接続およびCapistranoでの自動デプロイに成功しました。🎉

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0