なんで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も定義している。
参考: