はじめに
やりたいこと
AWS EC2上にUbuntu16.04のインスタンスをたてて、そのインスタンスにMacからリモートデスクトップが接続する
なんでこの記事を書いたか
ぐぐってみると、日本語、英語で色々なドキュメントが出てきた。それらを参考に色々試したがサクッとはいかなかった。「どれを参考にすればいいねん!」って人向けに「これを実行すればサクッと構築できるよ」という情報を提供したかったから書いた。
ちなみに、X Window System、ubuntu-desktop、xrdp、Xfce4、GNOME、KDE、Unity、vncなどなど、
用語がわからなすぎたのでハードルが高く感じた。
いまはただのメモ
とりあえずメモ代わりに投稿するかってくらいのモチベーションで投稿してます。
もしここの記述がようわからんとかあれば、コメントいただければ少しずつ細かく書いていきます。
想定している読者レベル
- EC2インスタンスをたてたことがある
- なんとなくlinuxコマンドがつかえる
用語
X Window System
ディスプレイにウィンドウを表示したり、マウスやキーボードを使ってやりとりするためのシステム。WindowsやMacではOSとこのソフトウェアが一体化しているが、Linuxでは一体化してないのでもし先述のことを行いたい(=GUI)場合はインストールする必要がある。MacのOS Xの「X」とWindowsの「Window」がまざった「X Window System」という名称で紛らわしい。単に「X」と呼ばれることもある。
Xfce, GNOME, KDE, Unity,
デスクトップ環境を実現するためのシステム。色々あってややこしいが、デスクトップ上のデザインや機能が微妙に違うだけ。今回はXfceを使った。
vnc
ネットワーク越しに、別のコンピューターのデスクトップ画面を表示してGUI操作することができるシステム。今回Ubuntuで環境を構築するにあたって参照した記事ではvnc4serverかTightVNCのどちらかを使っていることが多かった。
手順
EC2インスタンス作成
下記参照にEC2インスタンスを作成
- AMIはクイックスタートにあるUbuntu 16.04
- セキュリティグループのインバウンドにポート5901を追加
- とりあえずt2.microでいい
デスクトップ環境構築
この記事のとおりでOK
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
sudo service xrdp restart
tightvncserver
つなぐ
Finder起動->移動->サーバへ接続で、vnc://XX.XX.XX.XX:5901に接続。
XX.XX.XX.XXは作成したEC2インスタンスのIPかパブリックDNSを指定。
ただしvncはそのままでは暗号化されてないので、セキュアなことをやりたい場合はご自身で対応をお願いします。
ついでに日本語化
chromeをインストールしたら、日本語が文字化けしてたので日本語化してみた。
補足
- tightvncserverでなくてvnc4serverでもOKだと思います(試してない)
- xrdpはaptからのインストールでOK