最近、サーバーOSとしてUbuntu 18.04をGUI付きで使い始めました。
SSHでCUI上でフルコントロールができるとはいえ、やはりリモートでGUIで操作したいときもたまにあります。(GUIアプリケーションの操作など)
そういう時にリモートからGUIを操作する手段はいくつかあるのですが、今回はXRDPという、Windowsのリモートデスクトップクライアントから接続できるようにする方法を試してみました。
まず、aptでxrdp本体をインストールします。
sudo apt install -y xrdp
Ubuntuの場合、基本的にこれだけで動作するのですが、このままだとログイン後にエラーが発生してうまくつながらないので、追加の設定を行います。
#new_cursorsの無効化
sudo sed -e 's/^new_cursors=true/new_cursors=false/g' \
-i /etc/xrdp/xrdp.ini
#xrdpサービスの再起動
sudo systemctl restart xrdp
#xsessionファイルの作成
D=/usr/share/ubuntu:/usr/local/share:/usr/share:/var/lib/snapd/desktop
cat <<EOF > ~/.xsessionrc
export GNOME_SHELL_SESSION_MODE=ubuntu
export XDG_CURRENT_DESKTOP=ubuntu:GNOME
export XDG_DATA_DIRS=${D}
export XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg
EOF
#Authentication Requiredダイアログの回避
cat <<EOF | \
sudo tee /etc/polkit-1/localauthority/50-local.d/xrdp-color-manager.pkla
[Netowrkmanager]
Identity=unix-user:*
Action=org.freedesktop.color-manager.create-device
ResultAny=no
ResultInactive=no
ResultActive=yes
EOF
sudo systemctl restart polkit
詳細についてはこちらを参照してください。
Ubuntu 18.04: GNOMEデスクトップ環境にXRDPで接続する – Narrow Escape
あとはWindowsのリモートデスクトップでWindowsに接続するのと同じ方法で接続します。
認証情報が間違っている場合はこちらの画面が表示されます。
ここで正しい情報を入力すればそのままログインできます。
ログイン後の画面。
ちゃんとデスクトップが表示されました(/・ω・)/
Windowsにはよくリモートデスクトップで繋げているけど、めんどくさいのでLinuxにも同じ方法で繋げたい!という方にはおすすめです。

