踏み台サーバ経由でリモートデスクトップ接続してみた

2018.12.18

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

こんにちは。DI部の大高です。

AWS環境でEC2インスタンスのWindows Serverにリモートデスクトップをする際に、踏み台サーバを経由してリモートデスクトップ接続をすることがあります。

イメージとしては以下のような感じです。

いまは色々なツールなどもあり、様々な方法で踏み台サーバ経由でのリモートデスクトップ接続ができると思いますが、MacとWindowsでいくつかの方法を試してみたのでご紹介したいと思います。

試したパターンとしては、以下になります。

  1. [Mac] sshコマンド x 「Microsoft Remote Desktop 10」
  2. [Windows] 「Tera Term」 x 「リモートデスクトップ接続」
  3. [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形式に変換しておきます。

参考)PuTTYgen を使用した秘密キーの変換

最後にリモートデスクトップ接続の設定を行います。接続先ホストはlocalhostで、ポートは上記で設定した通り13389ポートになります。

設定は以上です。あとは、接続すれば通常のリモートデスクトップ接続のように接続できます。

まとめ

以上、踏み台サーバ経由でのリモートデスクトップ接続を3パターンご紹介しました。

踏み台サーバの経由での作業が頻繁にある場合には、何度も踏み台への接続が必要になってしまうので、うまくツールを活用したいと思います。

それでは。