こちらの記事で WindowsのVPSを使ってリモートデスクトップ接続する記事を書いたが、AWSのUbuntu Desktopでリモートデスクトップ接続できないか実験してみた。
PuTTYのインストール
PuTTYは検索すればすぐに出てくるが、ダウンロード先のリンクはこちらAWSでインスタンス立ち上げ
イメージの種類はUbuntu20.04を選択インスタンスの種類はt2.mediumにする。(t2.microだとChromeがほとんど動かないくらい重い)
基本的にはデフォルトの設定で問題ないが、気を付けるのはセキュリティ設定でSSHの22番ポートがきちんと開いていることを確認しておく。(デフォルトから変更しなければ問題ない)
インスタンス生成時にSSHの鍵ファイルをダウンロードする。(あらかじめ生成しておいたものでもよい)
AWSの鍵ファイルはpem形式だが、PuTTYが受け付けるのはppk形式なので変換が必要だこちらの情報を参考にpemファイルを ppkに変換する。自分の場合はWSLからputtygenを使って変換した。(WSLのインストールの仕方はこちら)
PuTTYの設定
Ubuntu側のリモートデスクトップ設定が終わったら、PuTTY側でクライアントからのSSH接続の設定を行う。- Host NameにインスタンスのパブリックIPアドレスを入力する
- 設定を保存しておいたほうが便利なので、Saved Sessionsに名前を入力しSaveを押す
- SSHメニューの中のAuthを開き、先ほど生成したppkファイルを設定する
Ubuntuのリモートデスクトップのインストールおよび設定
以下のコマンドを実行し、Ubuntuのリモートデスクトップのインストールおよび設定を行うsudo apt update && sudo apt upgrade sudo sed -i 's/^PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config sudo /etc/init.d/ssh restart sudo passwd ubuntu sudo apt install xrdp xfce4 xfce4-goodies tightvncserver echo xfce4-session> /home/ubuntu/.xsession sudo cp /home/ubuntu/.xsession /etc/skel sudo sed -i '0,/-1/s//ask-1/' /etc/xrdp/xrdp.ini
AWSのUbuntuのインスタンスはデフォルト設定ではパスワード認証でログインできないようになっているが、途中で認証の設定を変更し、パスワード認証でログインできるようにするとともにパスワード設定を行っている。
新しいパスワードを入力するように聞かれるので、新しいパスワードを設定する。
Puttyでトンネリング設定
今回はUbuntu側でリモートデスクトップのポートを開いて接続するのではなく、すでに開いているSSHの22番のポートを利用してSSHの中にRDPのプロトコルをトンネリングさせる。少しわかりにくいが下記の図のように、SSH接続が土管(トンネル)となってその中をリモートデスクトップのプロトコルが流れるイメージだ。PuTTYの設定は
- Source Portに8888
- Destinationに (Local IP Adressを172.31.3.223とした場合) 172.31.3.223:3389
この設定をした後に再度PuTTYでUbuntuのインスタンスにSSH接続する。
リモートデスクトップ接続
次にWindowsの端末からリモートデスクトップ接続する。この際に先ほどPuTTYで設定したように接続先を「loclahost:8888」とする。下記のような画面が現れここでUbuntuで設定したパスワードを入力しログインする。
Google Chromeのインストール
Ubuntuにログインできたらブラウザをインストールする。ここではGoogle Chromeのインストール方法を紹介しておく。Ubuntu上でのGoogle Chromeのインストールは下記のコマンド2つで実行wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb sudo dpkg -i google-chrome-stable_current_amd64.deb
インストール出来たら左上のメニューからGoogle Chromeが起動できるようになっている。
所感
UbuntuなのでWindowsと比べてサクサク動くことを期待していたが、Ubuntuのリモートデスクトップ環境はかなり重たく、4GBメモリではGoogle Chromeを動かすのでさえもカクカクして実用レベルになかった。AWS上のUbuntuはデスクトップ用途には向いていないので、デスクトップを使いたいのであればおとなしくWindowsのインスタンスを使うほうが良いと思う。EC2でインスタンスを立ち上げるのも久しぶりにやるとけっこう複雑で、こちらで紹介したAblenetのWindows VPSのほうが楽ちんで初心者にも使いやすいと思いました。