0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WindowsのリモートデスクトップからUbuntuに接続するまでの手順

0
Posted at

Windowsにはリモートデスクトップというアクセサリが入っており、同一ネットワーク上の別のWindowsマシンにリモートアクセスできて便利ですよね(リモート側がProfessional Editionじゃないと公式機能だけではリモートアクセスできなくてこっそり作られたなんかをもにょもにょしないといけなかったりしますが)。

ところでUbuntuに対して同じようにリモートデスクトップでアクセスできたりしないでしょうか。

できるらしいです。

ちょっと待って

もしあなたが使用しているUbuntuが22.04 LTS以上であるなら、面倒なことはほとんどなくリモートアクセスできるようです。こんな記事読むのやめて以下の記事を確認してください。

xrdpの導入

まず初めにxrdpをインストールします。これはWindowsのリモートデスクトップで使用されているRDPを喋れるサーバーアプリケーションです。

sudo apt update
sudo apt install -y xrdp

基本的にはインストールするだけで自動的にサービス起動してくれます。動作状態を確認するには以下のコマンドです。

sudo systemctl status xrdp

もし起動していなかったら以下のコマンドで起動と自動起動設定を行いましょう。

sudo systemctl start xrdp && sudo systemctl enable xrdp

xrdpが接続時に参照しようとするファイルの中にはssl-certグループ以外読み取り禁止のファイルが含まれるため、ユーザーxrdpssl-certグループに追加します。

sudo adduser xrdp ssl-cert

ファイアウォールの設定

RDPは3389番ポートを使用します。もしファイアウォールが設定されているならば、そのポートへのアクセスを許可してやる必要があります。Ubuntuの標準のファイアウォールであるUFWを念頭に記述します。まずUFWがアクティブになっているか確認します。

sudo ufw status

ここでinactiveとか表示されている場合はUFWがアクティブではないのでこの節は読み飛ばしてください(そもそも有効にすべきだろというのは置いておいて)。

UFWがアクティブな場合、3389を許可します。

sudo ufw allow 3389

IPアドレスを限定する場合は以下のようになります(以下は192.168.1.xxxをまとめて許可する場合の例です)。

sudo ufw allow from 192.168.1.0/24 to any port 3389

詳しくは以下の記事を参照してください。

許可を追加したら以下のコマンドでUFWをリロードします。

sudo ufw reload

Xwrapperの設定

X Window System(平たく言うとUbuntu側のGUI環境)の設定を変更してリモートからの接続を許可しておきます。

/etc/X11/Xwrapper.configを編集し、allowed_usersanybodyに、needs_root_rightsnoに設定します。

sudo cp -p /etc/X11/Xwrapper.config /etc/X11/Xwrapper.config.orig  # バックアップ
sudo nano -w /etc/X11/Xwrapper.config
# 上記に従って編集

xsessionの設定

接続時のデスクトップの見た目の設定を行います。これをやっておかないといつもと違う画面が出てきて困惑することになります。

nano ~/.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

xrdpの再起動

設定をいろいろ変更したのでxrdpを再起動しておきます。

sudo systemctl restart xrdp

Polkitの設定

このまま接続すると「カラープロファイルを作成するには認証が必要です」みたいな画面が何度も出てきて非常に鬱陶しい、どころか自分の場合なぜか認証画面が無限ループしだしたので、予め認証を非表示にしておきます。

sudo nano -w /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

[Allow Package Management all Users]
Identity=unix-user:*
Action=org.debian.apt.*;io.snapcraft.*;org.freedesktop.packagekit.*;com.ubuntu.update-notifier.*
ResultAny=no
ResultInactive=no
ResultActive=yes

なお、この設定はpkaction --version0.105以下の場合で、0.106以上では形式が異なるようです。ただし、「ちょっと待って」で示したようにそこまで新しいPolkitが採用されているUbuntuでは必ずしもxrdpを使用する必要はなさそうです。それでも使用する場合は以下のようになるようです……? 未検証であることをお許しください。

sudo nano -w /etc/polkit-1/rules.d/50-allow-useradmin.rules
/* ----Allow user administration in remote Desktop------- */
polkit.addRule(function(action, subject) {
if ((action.id == "org.gnome.controlcenter.user-accounts.administration") &&
subject.isInGroup("sudo")) {
return polkit.Result.YES;
}
});

Ubuntuデスクトップ環境からのログアウト

SSHなどから設定を進めていた場合は必要ない場合もありますが、もし接続先のUbuntuのデスクトップ環境にログインしている場合、複数人で同時にログインできないため予めログアウトしてください。Windowsにリモートデスクトップで接続した場合前のユーザーは勝手にログアウトされますが、こちらは手動でログアウトしておく必要があります。

リモートデスクトップから接続

リモートデスクトップを起動しリモートマシンのIPアドレスを入力して接続します。xrdpがログイン画面を用意してくれているので、Sessionを「Xorg」に、usernameとpasswordをそれぞれ入力してOKを押せばUbuntuのデスクトップ画面が表示されます。

参考記事

以下の記事を参考にしました。誠にありがとうございます。

この記事の情報は以上です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?