Ubuntuへリモートデスクトップ接続(RDP)する方法

Ubuntuへリモートデスクトップ接続(RDP)する方法

はじめに

この記事では、Ubuntu 22.04 へのリモートデスクトップ接続(RDP)の設定方法を説明します。

Ubuntu はデフォルトでは RDP 接続がサポートされていないため、xrdp というオープンソースソフトウェアを使用して設定します。

また、設定中に発生した問題とそのトラブルシューティングについても触れます。

環境

  • Ubuntu 22.04.5 LTS
  • xrdp(0.9.17-2ubuntu2)

xrdp のインストール

まず xrdp をインストールします。以下のコマンドを実行してください。

$ sudo apt update
$ sudo apt install xrdp

インストールが完了したら、xrdp サービスが起動しているか確認します。

$ sudo systemctl status xrdp
● xrdp.service - xrdp daemon
     Loaded: loaded (/lib/systemd/system/xrdp.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2024-11-17 14:36:43 JST; 1 week 3 days ago
       Docs: man:xrdp(8)
             man:xrdp.ini(5)
   Main PID: 341356 (xrdp)
      Tasks: 2 (limit: 14107)
     Memory: 21.4M
        CPU: 23.784s
     CGroup: /system.slice/xrdp.service
             ├─341356 /usr/sbin/xrdp
             └─838982 /usr/sbin/xrdp

インストール時におそらくサービスは自動起動していると思いますが、サービスが起動していない、若しくはサービスが自動起動しない設定になっている場合は以下のコマンドを実行します。

$ sudo systemctl enable xrdp
$ sudo systemctl start xrdp

次に xrdp を SSL 証明書グループに追加します。

$ sudo adduser xrdp ssl-cert

上記のコマンドを実行しないと以下の権限に関するエラーで接続できないので注意してください。

$ sudo tail -f /var/log/xrdp.log

# 中略

[ERROR] Cannot read private key file /etc/xrdp/key.pem: Permission denied

xrdp の設定

xrdp の基本的な設定は既に完了していますが、いくつかの追加設定を行うことでパフォーマンスを向上させることができます。

/etc/xrdp/xrdp.iniを必要に応じて設定を変更してください。

デフォルトユーザーでのログイン問題と解決策

ここまでの設定で RDP ソフトから接続はできますが、xrdp のログイン画面からデフォルトユーザー(OS セットアップ時に作成したユーザー)でログインしようとすると、画面が落ちてしまう問題が発生しました。

画面が落ちてしまう

ソフトのバグかと思い、ログも確認しつつ色々調査しましたが手がかりが掴めませんでした。しかし、新しくユーザーを作成すると接続できたという記事があったのでそのように対応することにしました。

# 任意のユーザー名を指定
$ sudo adduser rdpuser
New password: [任意のパスワードを入力]
Retype new password: [任意のパスワードを入力]
# その他は全て未入力でEnterキーを押す

作成したユーザーで再度ログインすると Ubuntu のデスクトップ画面が表示されます。

ubuntu-rdp-desktop

しかし、サイドバーにアプリアイコンが表示されておらず、左上のアクティビティボタンを押さないとランチャーが表示されないため、期待していたデスクトップ環境とは異なっていました…。

ubuntu-rdp-desktop01

これはxrdpで接続した際はカスタマイズされていない標準の GNOME デスクトップ環境のためこのような表示になるようです。

デスクトップ環境のカスタマイズ

ホームディレクトリに.xsessionrcというファイルを作成し必要な設定を記述することで GNOME デスクトップ環境をカスタマイズできます。

$ sudo su
# ここからrootユーザーで作業
cd /home/rdpuser
vim .xsessionrc
# 以下の内容を記述して保存
export GNOME_SHELL_SESSION_MODE=ubuntu
export XDG_CURRENT_DESKTOP=ubuntu:GNOME
export XDG_DATA_DIRS=/usr/share/ubuntu:/usr/local/share:/usr/share:/var/lib/snapd/desktop
export XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg

# サービスを再起動
systemctl restart xrdp
# エラーが出力されていないか確認
systemctl status xrdp
# rootユーザーを終了
exit

再びログインするとデスクトップ環境が変更されていることがわかります。

UbuntuのGNOME

また、認証後に画面が真っ黒になる場合は、以下のコマンドでgnome-sessionを強制的に終了します。

$ sudo pkill gnome-session

画面ロックを解除

デフォルトだとしばらく画面操作が無いとロックが掛かる設定で、xrdpでログイン後またパスワードを入力する必要があったのでこの設定を解除しました。

[設定] → [プライバシー] → [画面] → [自動画面ロック]をオフにします。

画面ロックをしない設定

最後に

この記事では、Ubuntu 22.04 へのリモートデスクトップ接続(RDP)の設定方法を解説しました。

xrdp のインストールと設定、デフォルトユーザーでのログイン問題とその解決策、デスクトップ環境のカスタマイズ、画面ロックの解除について説明しました。これらの手順に従うことで、Ubuntu へのリモートデスクトップ接続を快適に利用できるようになります。

参考記事