AWSに構築したプライベートサブネット内に存在するWindows Serverへ、Windows8からリモートデスクトップ接続する 〜 SSHポートフォワーディングを使用して

クライアントのWindows8から、AWSのプライベートサブネット内に構築したWindows ServerへRDP接続したという話。
こんな感じで話を進める。

◎やりたいこと
・やりたいこと
・やれない理由
◎やったこと
・概念図
・手順
 ①localhostのポート13389に、Windows Serverへの転送設定
 ②パブリックサブネットのEC2 Linuxssh接続
 ③127.0.0.1:13389へRDP接続
 ④トンネルを通じてWindows ServerへのRDP接続が完了する。

◎やりたいこと
・やりたいこと
次図。

・やれない理由
やれない理由は前図に記載した通り、接続先のWindows Serverがプライベートサブネットに存在するから、クライアントマシンから直接アクセスできないこと。

◎やったこと
・概念図
そこで今回は、パブリックサブネットに配置済みのサーバ(linuxマシン)を利用して、SSHポートフォワーディングによってWidows ServerへRDP接続した。
パブリックサブネット内にwindowsマシンを配置して、「クライアント→RDP接続→パブリックサブネット内のwindowsマシン→RDP接続→プライベートサブネット内のwindowsマシン」という接続方法をとっても良かったが、RDP接続をしてから更にRDP接続をするのが嫌だったのでSSHポートフォワーディングを試した。
実現イメージは次図。正直ポートフォワーディングの原理・仕組みの理解がまだ曖昧だが、現時点での理解を載せておく。

・手順
localhostのポート13389に、Windows Serverへの転送設定をする
Teratermを起動する。接続画面をキャンセルする。

設定からSSH転送を選択する。開いた画面へ必要な情報を入力する。今回は転送用の任意のローカルポートとして、「13389」を指定した
設定方法は、「TeraTermを利用したSSHポート転送」を参考にさせていただきました。

②パブリックサブネットのEC2 Linuxssh接続
設定したら同じTeraTermを使用して、パブリックサブネットのLinuxサーバへSSH接続する。

127.0.0.1:13389へRDP接続
ここまでの作業でトンネルが掘られたことになる。
②で使用したTeraTermはそのままにしておき(掘ったSSHトンネルをそのままにしておく)、アクセスしたいプライベートサブネットに存在するWindows ServerへRDP接続をする。
接続先には、②で設定したローカルポートを使用して「127.0.0.1:13389」と指定する。
※)ここで使用するポートは②でどのローカルポートを設定するかによって異なる。

ここでパスワードを求められるが、ここで困った。SSHを使用したEC2へのアクセスにはEC2インスタンスを作成した際にダウンロードしたプライベートキーファイルを使用していたが、windows RDPの場合はどうすれば良いのだろうか。

プライベートキーファイルからパスワードを取得するには、「EC2インスタンス一覧画面でインスタンスを右クリック→Get Windows Password」からパスワードを復元すれば良い。

Amazon EC2 で Windows 環境の構築 その1 リモートデスクトップで接続」を参考にしました。

④トンネルを通じてWindows ServerへのRDP接続が完了する。
パスワードを入力すると、無事にRDP接続が完了する。