Azure VM上のUbuntu16.04を日本語化して、RDP接続する


##はじめに
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 イメージで作った仮想マシン
![1_marketplace.png](https://qiita-image-store.s3.amazonaws.com/0/192113/14311dad-fe65-9608-f12b-333bc01e64c8.png)

当然ながらssh接続できる前提（デフォルト設定）でつくってる。

##作業
大きく２つに分けて記載。ほとんどがUbuntuOSとしての設定であるものの、Azure VMとしてのfirewall的な存在であるNSG(Network Security Group)を設定する部分がある。

1. Azure VMとしての設定（ちょっと）
2. Ubutnu OSでの設定

###Azure VMとしての設定
Azureポータルから作ったLinux仮想マシンはインターネット接続は、デフォルトでssh(22ポート)しか開放されていないので、先にRDP接続に必要な3389ポートをNSGで開放。
Azureポータル(https://portal.azure.com) のネットワーク > 「受信ポート規則の追加」からサービスでRDPを選択すると3389の設定が自動で入力される。
あとはOKを押せば完了。ほんとは全インターネットに公開しない方がいいんだろうけど、それは今回おいておく。
![2_NSG.png](https://qiita-image-store.s3.amazonaws.com/0/192113/a8a48f39-2d6c-ce79-e60e-d3a8d661b191.png)

###Ubutnu OSでの設定
とにもかくにもssh接続。
![3_ssh.png](https://qiita-image-store.s3.amazonaws.com/0/192113/51c6fcbd-bdc7-1913-5c96-301d52889bef.png)![4_rdp.png](https://qiita-image-store.s3.amazonaws.com/0/192113/31f183f0-e981-c8f9-ffdf-6460b8cb362b.png)


いちおうシステムのアップデートしてreboot。

```sh
sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y
sudo apt autoclean -y
sudo reboot
```

デスクトップ環境MATEをインストール。
上の記事だとlxde とかxfce4をセットアップしているけど、なぜかこれだとうまく表示できなくいろいろ調べたところMATEならできた。

```sh
sudo apt install -y ubuntu-mate-desktop mate-desktop-environment mate-desktop-environment-extras
```

次にXRDPのインストール。

```sh
sudo apt-get install -y xrdp
```

日本語キーボードに対応するために以下を実行

```sh
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
```

日本語化のパッケージも入れておく

```sh
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の動作確認

```sh
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が立ち上がるように設定

```sh
cd ~
echo 'export GTK_IM_MODULE=ibus
export QT_IM_MODULE=ibus
export XMODIFIERS="@im=ibus"
mate-session' > ~/.xsession
```

これでほぼXRDPの設定は完了。

<img src="https://qiita-image-store.s3.amazonaws.com/0/192113/8764834b-122f-fb61-6214-24ecc18afe63.png" width=50%>

![5_xrdp.png](https://qiita-image-store.s3.amazonaws.com/0/192113/abd54991-5c19-357c-851f-e0cc5763e59c.png)

![6_rdp.png](https://qiita-image-store.s3.amazonaws.com/0/192113/5028ba97-48db-6a3d-e3c4-0775c14a14b5.png)

あとは、UIで言語設定と入力設定を日本語設定して終わり。
System > Prefecenses > Personal > Language Support
System > Prefecenses > Others > IBus Prefecenses > Input Method 

![7_日本語化.png](https://qiita-image-store.s3.amazonaws.com/0/192113/cc9190ee-e916-f2b5-29c6-85128a5ece06.png)

##参考
1. [Azure Portal で Linux 仮想マシンを作成する](https://docs.microsoft.com/ja-jp/azure/virtual-machines/linux/quick-create-portal)
2. [Ubuntu MATE 15.10 その1 - 日本語環境の構築と確認・インターネットに接続せずUbuntu MATEをインストールした時は] (https://kledgeb.blogspot.jp/2015/10/ubuntu-mate-1510-1-ubuntu-mate.html)
3. [ubuntuで日本語入力を行う](https://qiita.com/shishamo_dev/items/238f6e5060fb838827f6)