Capistrano
SSH

capistrano3でssh agent forwarding

More than 3 years have 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