ローカルネットワーク内から接続する想定なので、ポート変更や公開鍵認証は使用しません。必要なら適宜変更して下さい。

インストール

xrdpとSSHのインストールは以下の通り。

sudo apt install -y xrdp openssh-server

設定

SSHの接続ポート変更や公開鍵認証有効化、パスワード認証無効化は/etc/ssh/sshd_configを編集する。

xrdpの設定は/etc/xrdp/xrdp.iniの編集でできる。

xrdpの問題解消

上記の通りインストールしただけで接続できるようになっているが、xrdpでログインすると毎回カラープロファイルがどうこうというカラーマネージメント関連のポップアップが頻繁に出てきて鬱陶しいです。これを以下の設定で無効化します。

適当なエディタ、ここではneを使ってファイルを編集します。

sudo ne /etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla

ファイルの内容は以下のようにします。

[Allow Colord all Users]
Identity=unix-user:*
Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile
ResultAny=no
ResultInactive=no
ResultActive=yes

polkitのサービス再起動か、PCを再起動すればOKです。polkitの最新版では設定方法が変化しているので、Ubuntuをバージョンアップするとまた別の設定が必要になると思われます(問題自体が発生しなくなる可能性もあるかと思います)。

Wi-Fiに対応したハードウェアがある場合、Wi-Fiアクセスポイントのスキャンをする権限の認証ポップアップが頻繁に出てきます。これも以下のファイルを作成します。

sudo ne /etc/polkit-1/localauthority/50-local.d/10-network-manager.pkla

内容は以下の通りです。

[Allow wi-fi scans for all users]
Identity=unix-user:*
Action=org.freedesktop.NetworkManager.wifi.scan
ResultAny=yes
ResultInactive=yes
ResultActive=yes

有効化するには、polkitとNetworkManagerのサービスか、PCを再起動します。

また、ユーザーのホームディレクトリにthinclient_drivesなるフォルダが生成されるのが鬱陶しいので、フォルダ名冒頭に「.」を付けて隠しフォルダ化することで対処します。

sudo ne /etc/xrdp/sesman.ini

変更する行は以下の通りです。

FuseMountName=.thinclient_drives

既に生成されたthinclient_drivesが残っていたら削除します。有効化するにはxrdpかPCの再起動が必要です。

また、xrdpの暗号化が効かない問題は、以下のコマンドでユーザーxrdpをssl-certグループに加えることで解決します。

sudo usermod -a -G ssl-cert xrdp

接続元のキーボードが英語配列なのに日本語OSからだと日本語配列として認識する問題は、英語配列のPCからしか接続しないのであれば、/etc/xrdp/xrdp_keyboard.iniのkeyboard_typeとkeyboard_subtypeの値を変えてxrdpサービスを再起動すれば反映されます。

しかし、接続元PCに日本語配列と英語配列が入り混じっている場合、この方法では全てのPCが英語配列にされてしまいます。この場合、接続元PCの側での対応が必要です。Windowsでは、「設定」を起動して「時刻と言語→言語」を開き、「言語の追加」から「英語(米国)」を追加します。追加後、「時刻と言語→言語→キーボード」を開いて「言語リストを使用します」が選択されていることを確認して下さい。そして、リモートデスクトップを起動する前に、言語バー(デフォルトではタスクバー内に表示されています)から言語を「英語(米国)」に変更して、それからリモートデスクトップを起動するようにします。そうすると、リモートデスクトップからxrdpサーバに正確なキーボードレイアウトが通知されるので、正しく入力できるようになります。接続時に毎回手間がかかってしまいますが、入り混じっている場合はこうするしかありません。Macでの対応方法は不明です。

参考になったページ