AWSを使っていると、ssh を使うことが多い。
お金を掛けてVPNゲートウェイを作成したり、お金を惜しんで手間を掛けてVPNサーバを自前で建てるより、sshでポートフォワードするのが手っ取り早い。VPNはネットワークアドレスの選定が面倒だし。
NATインスタンスとssh踏み台サーバをニコイチしちゃえばコストもお得。
Windows 用の ssh クライアントなら接続中にフォワーディングするポートを追加する場合もGUIのメニューから操作できるけど、同じことを openssh で行う方法。
業界にはMacBook使いの方が多いので、彼らには常識なのかも。
構成
EC2上にLinuxサーバがあり、sshで接続できる
EC2上にWindowsサーバがあり、172.30.10.21 というアドレスを割り当ててある
自分は 192.168.1.0/24 のネットワークにいる。
192.168.1.112 というFreeBSDからEC2上のLinuxへssh接続している
192.168.1.0/24 のネットワークから、EC2上のWindowsへRDPしたい
ssh のサブシェルを開く
ssh でリモートサーバに接続しているときに ~C
を入力すると、sshのサブシェルが開く。ここから、sshクライアントの動作を制御できる。
[ec2-user@ip-172-30-0-11]22:55% # ~C押下
ssh>
PortForwardの設定変更
サブシェルに対して、-L,-R,-D といったオプションを、ssh コマンドの引数に渡すのと同じように入力できる。
192.168.1.112 の TCP/33389 へのアクセスを、172.30.10.21 の TCP/3389 にフォワードするには以下のように設定する。
[ec2-user@ip-172-30-0-11]22:58% # ~C押下
ssh> -L 192.168.1.112:33389:172.30.10.21:3389
Forwarding port.
[ec2-user@ip-172-30-0-11]22:58%
これで、192.168.1.112:33389 にリモートデスクトップ接続するとEC2上のWindowsサーバを操作することができる。
おまけ
恒久的に設定するなら .ssh/config
に記載しておく
Host xxx.xxx.xxx.xxx
User ec2-user
LocalForward 192.168.1.112:33389 172.30.10.21:3389