Proxmox VEでデスクトップ環境を作り、そこへリモートデスクトップ接続する

# はじめに
環境はProxmox VE 4.2-14(Debian 8)でデスクトップ環境はMATE+LightDMです。リポジトリーは[Package repositories#Proxmox_VE_No-Subscription_Repository](https://pve.proxmox.com/wiki/Package_repositories#Proxmox_VE_No-Subscription_Repository)に従って変更しています。

結論としてはDebian安定版のxrdp 0.6は使いにくく、X11RDP-o-Maticはコンパイルに時間がかかった末にインストールできず、Debian不安定版のxrdp 0.9はバックエンドとの接続方法が分からず、X2Goに落ち着きました。

LXCで作成したDebian 8ではX11RDP-o-Maticがインストールできたので、素のDebianではX11RDP-o-Maticがよいかもしれません。

# デスクトップ環境をインストール
```
sudo apt-get install -y mate-desktop-environment-extras lightdm &&
sudo sed -i -r -e 's/^XKBMODEL=.*/XKBMODEL="jp109"/' -e 's/^XKBLAYOUT=.*/XKBMODEL="jp"/' /etc/default/keyboard &&
source /etc/default/keyboard &&
sudo apt-get install -y fcitx-mozc    fonts-ipafont fonts-ipaexfont    chromium chromium-l10n
```
キー配列はリモートから接続する場合関係なさそうですが念のため設定しています。LXCのDebian 8でテストすると、lightdmをインストールして初めて/etc/default/keyboardが作成されるようですが、Proxmox VEをKVMにインストールすると最初から/etc/default/keyboardが存在していました。

# x11vnc
画面がそのまま表示されるのでデバッグ用にインストール

```
#インストール
sudo apt-get install -y x11vnc

#パスワードを設定
sudo x11vnc -storepasswd

#起動
sudo x11vnc -q -bg -display :0 -auth /var/run/lightdm/root/:0 -rfbauth ~/.vnc/passwd
```

# Debian安定版のxrdp 0.6
* 利点：インストールが簡単・安定
* 欠点：クリップボード共有が使えない、[キー配列について - 日本 xrdp ユーザ会](https://xrdp.vmeta.jp/%E3%82%AD%E3%83%BC%E9%85%8D%E5%88%97%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6)に沿ってキー配列の設定が必要

## インストール
```
sudo apt-get install -y xrdp &&
echo 'mate-session' > ~/.xsession &&
sudo systemctl status xrdp &&
cd /etc/xrdp &&
(cd /tmp; wget --prefer-family=IPv4 http://w.vmeta.jp/temp/km-0411.ini) &&
sudo cp /tmp/km-0411.ini . &&
sudo ln -s km-0411.ini km-e0200411.ini &&
sudo ln -s km-0411.ini km-e0010411.ini &&
sudo /etc/init.d/xrdp restart
```

## アンインストール
```
sudo apt-get purge -y xrdp
```

# X11RDP-o-Matic
* 利点：クリップボード共有が使える、キー配列の設定が不要
* 欠点：インストールが不安定、コンパイルするためインストールに30分ほど時間がかかる
    * LXCのDebian 8にはインストールできたが、KVMのProxmox VEにはインストールできなかった

## インストール (master)
```
sudo apt-get install -y git &&
git config --global http.sslVerify false &&
cd ~ &&
git clone https://github.com/metalefty/X11RDP-o-Matic &&
sudo ./X11RDP-o-Matic/X11rdp-o-matic.sh --justdoit &&
echo mate-session > ~/.xsession &&
dpkg -l xrdp x11rdp
```

## インストール (devel)
```
sudo apt-get install -y git &&
git config --global http.sslVerify false &&
cd ~ &&
git clone -b devel https://github.com/metalefty/X11RDP-o-Matic &&
sudo ./X11RDP-o-Matic/X11rdp-o-matic.sh --justdoit --branch devel &&
echo mate-session > ~/.xsession &&
dpkg -l xrdp x11rdp
```

## アンインストール
```
sudo apt-get purge -y x11rdp* xrdp
```

# Debian不安定版のxrdp 0.9
* 利点：クリップボード共有が使える、キー配列の設定が不要
* 欠点：バックエンドとうまく接続できず使えなかった
    * xorgxrdpは依存関係の問題でインストール不可、vnc4serverへは接続方法が分からなかった

## インストール
```
target_release='APT::Default-Release "stable";' &&
sudo sh -c 'echo "'"$target_release"'" > /etc/apt/apt.conf.d/99target' &&
cat /etc/apt/apt.conf.d/99target &&
sources_list="\ndeb http://ftp.jp.debian.org/debian unstable main contrib non-free\ndeb-src http://ftp.jp.debian.org/debian unstable main contrib non-free" &&
sudo sh -c 'echo "'"$sources_list"'" >> /etc/apt/sources.list' &&
cat /etc/apt/sources.list &&
sudo apt-get update &&
sudo apt-get install -y vnc4server xrdp/unstable &&
echo 'mate-session' > ~/.xsession &&
sudo systemctl status xrdp
```

## アンインストール
```
sudo apt-get purge -y vnc4server xrdp
```

# X2Go
* 利点：SSHベースのため公開鍵認証ができる、クリップボード共有が使える、サウンドがリダイレクトされる
* 欠点：クライアントが少なくスマホ用のクライアントがない、日本語をコピーすると"\u65e5\u672c\u8a9e"となってしまう
    * Windowsクライアントから接続した際、ECDSA鍵では認証できずRSA鍵で認証しました。

## インストール
```
sudo apt-key adv --recv-keys --keyserver keys.gnupg.net E1F958385BFE2B6E &&
x2go_sources="# X2Go Repository (release builds)\ndeb http://packages.x2go.org/debian jessie main\n# X2Go Repository (sources of release builds)\ndeb-src http://packages.x2go.org/debian jessie main\n" &&
sudo sh -c 'echo "'"$x2go_sources"'" > /etc/apt/sources.list.d/x2go.list' &&
sudo apt-get update &&
sudo apt-get install -y x2go-keyring &&
sudo apt-get update &&
sudo apt-get install -y x2goserver x2goserver-xsession
```