はじめに
Azure 上のUbuntu16.04仮想マシンにデスクトップ環境を設定しようと思い、いろいろ試していたらRDP接続に少しはまったので備忘録をかねてメモ。
※補足
当初、下記の内容を参照していたが、Ubuntu 14.04のOSイメージでは問題なくRDP接続できたものの、16.04では接続後、デスクトップが表示されない状況(XRDPの処理途中で止まる...)になって詰まった。
Azure Virtual Machines 上にデプロイした Ubuntu Server 15.10 を日本語化、RDP 経由でアクセスする
https://kogelog.com/2016/03/05/20160305-01/
もうちょっと調べたところ、Azureとしてのドキュメントもあったが、同じくubuntu 16.04では、デスクトップ表示されなかったので、回避策を調べることに。リモートデスクトップをインストールして Azure の Linux VM に接続するように構成する
https://docs.microsoft.com/ja-jp/azure/virtual-machines/linux/use-remote-desktop
事前準備(環境)
Azure Marketplae でCanonicalから公開されている Ubuntu Server 16.04 LTS イメージで作った仮想マシン
当然ながらssh接続できる前提(デフォルト設定)でつくってる。
作業
大きく2つに分けて記載。ほとんどがUbuntuOSとしての設定であるものの、Azure VMとしてのfirewall的な存在であるNSG(Network Security Group)を設定する部分がある。
- Azure VMとしての設定(ちょっと)
- Ubutnu OSでの設定
Azure VMとしての設定
Azureポータルから作ったLinux仮想マシンはインターネット接続は、デフォルトでssh(22ポート)しか開放されていないので、先にRDP接続に必要な3389ポートをNSGで開放。
Azureポータル(https://portal.azure.com) のネットワーク > 「受信ポート規則の追加」からサービスでRDPを選択すると3389の設定が自動で入力される。
あとはOKを押せば完了。ほんとは全インターネットに公開しない方がいいんだろうけど、それは今回おいておく。
Ubutnu OSでの設定
いちおうシステムのアップデートしてreboot。
sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y
sudo apt autoclean -y
sudo reboot
デスクトップ環境MATEをインストール。
上の記事だとlxde とかxfce4をセットアップしているけど、なぜかこれだとうまく表示できなくいろいろ調べたところMATEならできた。
sudo apt install -y ubuntu-mate-desktop mate-desktop-environment mate-desktop-environment-extras
次にXRDPのインストール。
sudo apt-get install -y xrdp
日本語キーボードに対応するために以下を実行
cd /etc/xrdp
sudo wget http://www.mail-archive.com/xrdp-devel@lists.sourceforge.net/msg00263/km-e0010411.ini
sudo cp km-e0010411.ini km-0411.ini
sudo cp km-e0010411.ini km-e0200411.ini
sudo cp km-e0010411.ini km-e0210411.ini
日本語化のパッケージも入れておく
cd ~
wget -q https://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-key add -
wget -q https://www.ubuntulinux.jp/ubuntu-jp-ppa-keyring.gpg -O- | sudo apt-key add -
sudo wget https://www.ubuntulinux.jp/sources.list.d/xenial.list -O /etc/apt/sources.list.d/ubuntu-ja.list
sudo apt-get update
sudo apt install -y ibus-mozc ubuntu-defaults-ja
XRDPの動作確認
azureuser@ubuntu1604lts:/etc/xrdp$ service xrdp status
● xrdp.service - LSB: Start xrdp and sesman daemons
Loaded: loaded (/etc/init.d/xrdp; bad; vendor preset: enabled)
Active: active (running) since Fri 2018-03-02 02:31:14 UTC; 7min ago
Docs: man:systemd-sysv-generator(8)
CGroup: /system.slice/xrdp.service
tq51116 /usr/sbin/xrdp
mq51121 /usr/sbin/xrdp-sesman
Mar 02 02:31:14 ubuntu1604lts systemd[1]: Starting LSB: Start xrdp and sesman daemons...
Mar 02 02:31:14 ubuntu1604lts xrdp[51083]: * Generating xrdp RSA keys......
Mar 02 02:31:14 ubuntu1604lts xrdp[51083]: Generating 512 bit rsa key...
Mar 02 02:31:14 ubuntu1604lts xrdp[51083]: ssl_gen_key_xrdp1 ok
Mar 02 02:31:14 ubuntu1604lts xrdp[51083]: saving to /etc/xrdp/rsakeys.ini
Mar 02 02:31:14 ubuntu1604lts xrdp[51083]: ...done.
Mar 02 02:31:14 ubuntu1604lts xrdp[51083]: * Starting Remote Desktop Protocol server
Mar 02 02:31:14 ubuntu1604lts xrdp[51083]: ...done.
Mar 02 02:31:14 ubuntu1604lts systemd[1]: Started LSB: Start xrdp and sesman daemons.
この段階でRDP接続が可能だけど、ログイン後灰色の画面が表示されるので、リモートデスクトップ接続時にMATEが立ち上がるように設定
cd ~
echo 'export GTK_IM_MODULE=ibus
export QT_IM_MODULE=ibus
export XMODIFIERS="@im=ibus"
mate-session' > ~/.xsession
これでほぼXRDPの設定は完了。

あとは、UIで言語設定と入力設定を日本語設定して終わり。
System > Prefecenses > Personal > Language Support
System > Prefecenses > Others > IBus Prefecenses > Input Method
参考
- Azure Portal で Linux 仮想マシンを作成する
- [Ubuntu MATE 15.10 その1 - 日本語環境の構築と確認・インターネットに接続せずUbuntu MATEをインストールした時は] (https://kledgeb.blogspot.jp/2015/10/ubuntu-mate-1510-1-ubuntu-mate.html)
- ubuntuで日本語入力を行う