インフラ

Capistranoで~/.ssh/configの設定を使おう!

capistrano-ssh-config
野田竣介

今回はこのような質問をいただきました。

Capistranoで使う鍵ファイル、GitHubにプッシュしたくないんだけど何とかならないかな?

鍵ファイルは絶対にGitHubにプッシュしてはいけません。

そこで今回はこちらの質問について解説していきます!

環境
  • ruby 2.6.0
  • Capistrano 3.10.2
  • CentOS7(Docker)

~/.ssh/configの設定を使う!

実はCapistranoでは~/.ssh/configの設定が使えます。

~/.ssh/configを使ってssh接続できるようになれば、その設定をそのまま使えてしまうんですよね。

一般的にCapistranoでssh接続するときの設定はこのように紹介されていることが多いです。

# deploy/production.rb
set :ssh_options, {
  user: 'user',
  keys: %w(./ssh/id_rsa),
  forward_agent: true,
  auth_methods: %w{publickey}
}

ただ、これだと接続方法がわかってしまいますし、鍵ファイルも配置しなければならないですよね。

そこで~/.ssh/configの設定を使ってみましょう!

~/.ssh/configの設定

~/.ssh/configの設定はこちらで解説しています。

設定していない方は参考にしてみてください!

あわせて読みたい
~/.ssh/configにホストを登録して簡単にsshしよう!
~/.ssh/configにホストを登録して簡単にsshしよう!

~/.ssh/configの設定を読み込む!

~/.ssh/configにsample-serverというホストを設定した場合、Capistranoでこのように設定することでsshできるようになります。

# deploy/production.rb
server "sample-server"

複数台設定したい場合は次のように2行設定するだけです。

# deploy/production.rb
server "sample-server-01"
server "sample-server-02"

まとめ

以下の手順で簡単にsshできるようになります。

  1. ~/.ssh/configにホストを登録
  2. 鍵ファイルを配置
  3. 念の為、sshコマンドで接続確認
  4. Capistranoで設定

鍵ファイルの配置を忘れないようにしてくださいね!

あとがき

この接続方法を紹介している記事、見たことないんですよね。

最初はこのコードで何をやっているのかわかりませんでした。

でも知ってしまえばこっちのほうが良いですよね。

接続情報はサーバに設定しておくだけになるのでセキュリティリスクも低くなると思います!

今となってはCapistranoを使うことはなくなりましたが、せっかく書いた記事なので残しておきます。

記事URLをコピーしました