踏み台サーバ経由でリモートデスクトップ接続してみた
はじめに
こんにちは。DI部の大高です。
AWS環境でEC2インスタンスのWindows Serverにリモートデスクトップをする際に、踏み台サーバを経由してリモートデスクトップ接続をすることがあります。
イメージとしては以下のような感じです。
いまは色々なツールなどもあり、様々な方法で踏み台サーバ経由でのリモートデスクトップ接続ができると思いますが、MacとWindowsでいくつかの方法を試してみたのでご紹介したいと思います。
試したパターンとしては、以下になります。
- [Mac] sshコマンド x 「Microsoft Remote Desktop 10」
- [Windows] 「Tera Term」 x 「リモートデスクトップ接続」
- [Windows] 「Remote Desktop Manager」
なお、環境の構築についてはこちらも参考になるかと思います。
AWS クラウドでの Linux 踏み台ホスト: クイックスタートリファレンスデプロイ
前提条件
OSは「MacOS Mojave」と「Windows 10」で検証しました。
Mac編
sshコマンド x 「Microsoft Remote Desktop 10」
Macではsshコマンドと「Microsoft Remote Desktop 10」での組み合わせで試してみました。
まずはターミナルからsshコマンドで、以下のように踏み台サーバへ接続します。
$ ssh -L 13389:[WindowsサーバのプライベートIPアドレス]:3389 -i my-key-pair.pem ec2-user@[踏み台サーバのIPアドレス]
sshコマンドでは-L
オプションを利用してローカルフォワードをしています。今回はローカルマシンの13389
ポートに接続すると、Windowsサーバの3389
ポート(RDP接続用のポート)に繋がるようにしています。
なお、キーペアファイルについては、事前に以下のコマンドでパーミッション設定を適切に変更しておく必要があります。
$ chmod 400 my-key-pair.pem
この状態で、「Microsoft Remote Desktop 10」を起動してリモートデスクトップ接続を行います。
接続先は上記で設定した通り、localhost:13389
になります。
接続先の認証情報は以下のようになります。なお、「User Name」に「[WindowsサーバのプライベートIPアドレス]\Administrator」のように入力したくなるのですが、今回試したケースでは「Administrator」のようにアカウント名だけにしないと接続できませんでした。
設定は以上です。あとは、接続すれば通常のリモートデスクトップ接続のように接続できます。
Windows編
Windowsでは以下の2パターンで試してみました。
「Tera Term」 x 「リモートデスクトップ接続」
まずは「Tera Term」にローカルフォワードの設定を行います。
メニューの「設定 > SSH転送」から設定画面を開きます。
「追加」ボタンをクリックして、ローカルのポート13389
が、リモート側のホスト(WindowsサーバのプライベートIP)10.10.10.10
のポート3389
に転送されるように設定して「OK」ボタンをクリックします。
設定後は、「設定 > 設定の保存...」から設定を保存しておきます。
設定が出来たら、改めて踏み台サーバへSSH接続をおこなうことで準備完了です。
なお、「Tera Term」サイトの以下が参考になると思います。
SSH転送(ポートフォワード)でリモートデスクトップ接続 | Tera Term(テラターム)の便利な使い方
あとは「リモートデスクトップ接続」を利用して、以下のようにlocalhost:13389
へ接続すれば通常のリモートデスクトップ接続のように接続できます。
「Remote Desktop Manager」
「Remote Desktop Manager」は複数のリモートデスクトップ接続を管理できるツールで、更にリモートデスクトップ接続時に、同時にVPNやSSH、Gatewayへの接続を行ってくれる便利なツールです。
WindowsとMacの両方に対応しているようですが、今回はWindows版だけ試してみました。
ダウンロードは下記のページから「Free Edition」の「Version 5.1.1.0」をダウンロードしました。
Download - Remote Desktop Manager
インストールして、起動できたら「New Entry」をクリックしてエントリーを追加します。
エントリーとしては「Remote Connections」から「Microsoft Remote Desktop (RDP)」を選択して「OK」をクリックします。
まずは踏み台サーバ用の設定をします。「VPN/SSH/Gateway」から以下のように設定します。セッションの「Open」は「Always connect」として常に接続させます。また、「Type」を「SSH」にします。
次に「Settings」タブの「General」タブを開きます。「General」に踏み台サーバの設定を入力し、「Outgoing Tunnel Settings」に以下のようにポートフォワーディング設定を行います。ポートについてはデフォルトでは「3390」ポートとなっていますが、今回は明示的に「13389」を指定しました。
次に「Private Key」タブを開き、キーの設定をします。「Private key type」で「File」を選択し、「File」にキーファイルを指定します。また、「Passphrase」が無い場合は「Always prompt for passphrase」のチェックは外しておくと良いです。
注意点が2点あり、1つめはファイルのパスです。日本語が含まれるファイルパスの場合、うまくパスが解釈できずにエラーになるようなので、日本語のフォルダなどに格納しないようにします。また、2つめにキーはppk形式である必要があります。pem形式のファイルは扱えないので「PuTTY」などを利用して事前にppk形式に変換しておきます。
最後にリモートデスクトップ接続の設定を行います。接続先ホストはlocalhostで、ポートは上記で設定した通り13389
ポートになります。
設定は以上です。あとは、接続すれば通常のリモートデスクトップ接続のように接続できます。
まとめ
以上、踏み台サーバ経由でのリモートデスクトップ接続を3パターンご紹介しました。
踏み台サーバの経由での作業が頻繁にある場合には、何度も踏み台への接続が必要になってしまうので、うまくツールを活用したいと思います。
それでは。