インフラ

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

capistrano-ssh-config

こんばんは!光です。

大手グローバル企業でWebエンジニアをやっています。

Webエンジニアを目指してプログラミングを勉強している初心者の方向けに情報を発信しています。

経歴や実績はこちら

システム開発のお仕事の依頼もお待ちしております。

お問い合わせページTwitterのDMからお気軽にお問い合わせください!

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

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

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

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

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

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

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

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

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

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/configにsample-serverというホストを設定した場合、Capistranoでこのように設定することでsshできるようになります。

server "sample-server"

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

server "sample-server-01"
server "sample-server-02"

まとめ

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

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

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

あとがき

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

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

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

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