0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Capistrano 3で多段SSHを行う方法

Posted at

Capistrano 3で多段SSHを使用してデプロイするには、.ssh/configの設定をするとスッキリ書けます。

以下、設定例

deploy.rb

server 'test-server', user: 'ec2-user', roles: %w{app db web}

set :ssh_options, {
  keys: %w(~/.ssh/test-key.pem),
  forward_agent: true,
  auth_methods: %w(publickey)
}

.ssh/config

# 踏み台サーバー
Host fumidai-server
 HostName xxx.xxx.xxx.xxx
 User ec2-user
 IdentityFile ~/.ssh/fumidai.pem

# デプロイ先のサーバー
Host test-server
 HostName yyy.yyy.yyy.yyy
 User ec2-user
 IdentityFile ~/.ssh/test-key.pem
 ProxyCommand ssh fumidai-server -W %h:%p

注意点

.ssh/configファイルでは、コメントはコード行の末尾に記載しないようにしてください。例えば、以下のようにするとCapistranoでエラーが発生します。

Host test-server # デプロイ先のサーバー
 HostName yyy.yyy.yyy.yyy
 User ec2-user
 IdentityFile ~/.ssh/test-key.pem
 ProxyCommand ssh fumidai-server -W %h:%p

通常のSSH接続では問題ありませんが、Capistranoではこの形式が原因でエラーが起こります。

CapistranoはSSH設定情報をパースしてリモート接続を行おうとするため、行末にコメントがあると構文解析が失敗するためです。逆にSSHのconfigが柔軟なフォーマットを持っているってことですね。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?