なんで2つも踏み台噛まさないといけないのか。。と思いつつ設定した。 .ssh/configに以下を記載する。
HOST humidai1
HostName xxx.xxx.xxx.xxx
User xxx
Port 22
GatewayPorts yes
LocalForward 3111 localhost:3111
HOST humidai2
HostName xxx.xxx.xxx.xxx
User ec2-user
Port 22
IdentityFile ~/.ssh/mykey.pem
ProxyCommand ssh -CW %h:%p humidai1
GatewayPorts yes
HOST dev
HostName xxx.xxx.xxx.xxx
User ubuntu
Port 22
ProxyCommand ssh -CW %h:%p humidai2
IdentityFile ~/.ssh/mykey.pem
GatewayPorts yes
LocalForward 3111 xxx.xxx.xxx.xxx:22 #xxx.xxx.xxx.xxxはdevサーバのIPアドレス
HOST dev_without_tunnel
HostName 127.0.0.1
User ubuntu
Port 3111
IdentityFile ~/.ssh/mykey.pem
そうすると、ssh devでdevサーバにログインし、かつローカルの3111ポートにアクセスするとdevサーバの22ポートにアクセスできるようになる。
色んなツール類からsshを使う場合、トンネルなしの接続したいこともあるだろうと思いdev_without_tunnelも定義している。
参考: