capistrano3でssh agent forwarding

  • 44
    Like
  • 0
    Comment
More than 1 year has passed since last update.

capistranoでSSH接続するときにssh agent forwardingが使えます。
書き方は、

production.rb
set :ssh_options, {
  user: 'ec2-user',
  keys: %w{~/.ssh/x.pem ~/.ssh/y.pem},
  forward_agent: true,
  auth_methods: %w{publickey}
}

こんな感じです。

これで何がやれるのかというと、

  • デプロイ対象のサーバーがX
  • デプロイしたいソースのGitリポジトリ(SSH接続)がY

という状況でサーバーXにY.pemを置かずに X->YのSSH接続をすることができます。

上図のように作業端末にX,Yそれぞれの鍵があればいいのです。

ただ、上記のCapistranoのssh設定だけでは使うことができません。
作業端末でssh-add -lを叩いた時に以下のようになっている必要があります。

$ ssh-add -l
2048 f7:07:18:66:97:f0:8f:7b:40:6f:0b:97:98:de:5e:18 /home/newgyu/.ssh/y.pem (RSA)

どうすりゃいいのかというと、予め下記のコマンドを叩いておく必要があります。

$ ssh-add /home/newgyu/.ssh/y.pem