日々精進

新しく学んだことを書き留めていきます

SSHを3段にし、さらにポートフォワーディングもする方法

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

参考:

qiita.com