Ubuntu MATE 22.04 Remote Desktop (xrdp)

公開日時:2020-07-17 Fri. 20:39:23 JST
最終更新日時:2022-05-15 Sun. 16:27:18 JST
Ubuntu MATE 22.04 LTS
Ubuntu MATE 20.04 LTS
by kiyozzy

■ Ubuntu MATE 22.04 情報

Ubuntu MATE 22.04 (Jammy Jellyfish) の xrdp は現在(2022-05-15)不具合があります。
Getting error during login attempt: "error loading libvnc.so specified in xrdp.ini"
Xorg方式では使用できますが、VNC方式で使用できません。下記では tigervnc, vino を使う方法がVNCを使います。
不具合に対処する方法を書きました。-> Ubuntu22.04でxrdp(0.9.17-2ubuntu2)の不具合に対処する

■ はじめに

Ubuntu MATE 22.04, 20.04 を、他のUbuntuやWindowsからリモートデスクトップで接続し操作するためにxrdpを使います。
操作される側の準備の説明です。

■ インストール

sudo apt install -y xrdp
sudo gpasswd -a xrdp ssl-cert

接続するとログインダイアログが表示されます。以下の説明で"Xorg","Xvnc","console"とあるのは、このSession項目の事です。
xrdp login

■ "Xorg", "Xvnc" で実際のデスクトップとは別にログイン

"Xorg"でリモート接続するにはそのままでよく、"Xvnc"するには tigervnc が必要。

sudo apt install -y tigervnc-standalone-server

設定は不要。"Xorg"より"Xvnc"の方がレスポンスがよいかも。

MATEの場合、この時点でリモート接続すると dbus のエラーが出るので、下記対応を行う。
~/.profile も読めてないので修正する。
(以前はここで直接 "dbus-launch /etc/X11/Xsession" としていたが、 /etc/X11/Xsession に dbus-launch を起動するロジックがあるのでそれを利用する方式に変更。)

sudo vi /etc/xrdp/startwm.sh

...
if test -r /etc/profile; then
        . /etc/profile
fi

test -x /etc/X11/Xsession && exec /etc/X11/Xsession
exec /bin/sh /etc/X11/Xsession

↓上を下の様に修正する。

...
if test -r /etc/profile; then
        . /etc/profile
fi

if test -r "$HOME/.profile"; then
        . "$HOME/.profile"
fi

unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR

test -x /etc/X11/Xsession && exec /etc/X11/Xsession
exec /bin/sh /etc/X11/Xsession

Ubuntu20.04の場合は、/etc/pam.d/xrdp-sesman 設定を修正する。
sudo vi /etc/pam.d/xrdp-sesman

#%PAM-1.0
@include common-auth
...

↓上を下の様に修正する。

#%PAM-1.0
session required pam_env.so readenv=1 user_readenv=0
@include common-auth
...

■ "console" で実際のデスクトップと同じ画面にログイン

vinoを使えば接続画面で"console"を選んでログイン中の画面にアクセスできる。

sudo apt install -y vino

dconfコマンドでvinoの設定をする。

dconf write /org/gnome/desktop/remote-access/prompt-enabled false
dconf write /org/gnome/desktop/remote-access/require-encryption false

MATEメニューの「設定」の「自動起動するアプリ」に登録する。
/usr/lib/vino/vino-server
xrdp vino
登録しただけだと起動しないので、再起動などすると自動起動が働きvinoが起動する。

"console"メニューは Ubuntu 20.04, 22.04 では消えている。復活させるには下記を追加
sudo vi /etc/xrdp/xrdp.ini

[console]
name=console
lib=libvnc.so
ip=127.0.0.1
port=5900
username=na
password=ask
#delay_ms=2000

■ 接続選択の順番

接続画面の "Xorg", "Xvnc", "console"などの順番は
/etc/xrdp/xrdp.ini の記載順なので好みの順番に変更する。
クライアント側でパスワードを保存しておけば、一番最初に設定した接続で自動ログインが可能。

設定を変えたら
sudo systemctl restart xrdp.service