7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

接続中のsshセッションでportforwardを操作する

Posted at

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クライアントの動作を制御できる。

command-line
[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 にフォワードするには以下のように設定する。

command-line
[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 に記載しておく

ssh/config
Host xxx.xxx.xxx.xxx
	User ec2-user
	LocalForward 192.168.1.112:33389 172.30.10.21:3389
7
6
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
7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?