Ubuntu 22.04 LTSでリモートデスクトップを使う

Ubuntu 22.04 LTSでリモートデスクトップを使う

なぜリモートデスクトップを使うか?

エンジニアが使用するパソコンはやはりWindowsが多いのが現状です。しかし、テクノロジーの進化によって、主な作業を行うことはMacやLinuxでもほぼ困らないレベルにもなってきました。そして、これらのOSはWindowsと比べてハードウェアリソースをそれほど要求しません。

行う作業がリソースを食う人にとっては、パソコンは定期的にアップグレードが必要になります。しかし、稼いだお金をPCにつぎ込み続けるのはあまり効率が良くないです。

Linuxであれば、ハイスペックでなくても、または何世代か古いパソコンでも十分使えます。ただ、Windowsから完全に離れるのは怖い。そこで、リモートデスクトップです。

家に余っている古いパソコンや、会社のプライベートクラウドなどにUbuntuなどをインストールしておきます。それをリモートデスクトップで使用すると、自分の手元には安い標準スペックの軽量ラップトップで十分ということになります。

また、仕事の環境をLinuxへ移行するための練習にもリモートデスクトップはうってつけです。

2022年4月21日に、Ubuntuの22.04LTSが発表されました。かなり使いやすくなっているので、Windowsからのリモートデスクトップの接続方法を試してみます。

今回の記事では、以下の2つの設定を試します。

  • 標準リモートデスクトップ機能の設定
  • XRDP

両方試したうえで、違いを確認し、お勧めを決めたいと思います。

環境準備(OSインストール)

環境はもちろんUbuntu 22.04 LTSです。このバージョンから標準でリモートデスクトップ機能が搭載されたようです。

ということで、Ubuntuの22.04LTSのデスクトップ版、フレーバーではなく無印のISOファイルをダウンロードします。

https://ubuntu.com/

物理マシンにインストールする時は、RufusなどでUSBメモリに書き込んで使用します。Proxmoxなどの仮想環境にインストールする時は、そのままアップロードして使えます。

https://rufus.ie/ja/

ちなみに、インストールはミニマルでなく標準インストールで問題ありません。

インストールが終わったら、アップデートをすべて適用しておきます。

$ sudo apt-get update
$ sudo apt-get upgrade

なお、openssh-serverは標準では入っていないので、必要であれば後から以下のコマンドでインストールできます。

$ sudo apt-get install openssh-server

標準リモートデスクトップ機能の設定

Sharingの設定(基本はこれだけ!)

まず、デスクトップの右上の電源ボタンのマークをクリックして、「Settings」をクリックします。

設定画面の左のペインで「Sharing」を選択し、右上のスライダーをONにする。

最初は「Remote Desktop」がOFFになっているので、開いて設定を行う。

「Remote Desktop」と「Remote Control」のスライダーをONにする。

もし、Windows標準のリモートデスクトップツールで接続する場合は、この設定で問題ないが、VNCを使用する場合は「Enable Legacy VNC Protcol」にチェックを付けて、「Require a password」に設定しておく。

また、画面の一番下のパスワードは必ず確認するか、再設定する必要がある。この値は、ユーザーのログインパスワードとは別の値として設定されている。もちろん、ログインパスワードと同じ値に設定する事も可能です。

Windows10標準搭載の「リモートデスクトップ接続」アプリから接続する

スタートメニューから入力するか探して「リモートデスクトップ接続」を開く。

IPアドレスでもホスト名でも接続できるが、ホスト名でうまく接続できない時はIPアドレスを指定すると良い。

「接続」ボタンをクリックする。

警告が表示されるが、気にせず「接続」ボタンをクリックする。

Windowsのログイン情報とは異なるので「その他」をクリックして、「別のアカウントを使用する」をクリックする。

ユーザーIDとパスワードを入力して、「OK」ボタンをクリックする。

証明書のエラーが出るが気にせず、「はい」をクリックする。

Ubuntu側でログイン済みでデスクトップが表示されていれば、正常に接続される。

もし、接続できない時はUbuntuを再起動する。

ロック解除設定の有効化(設定しなくてもいいけど推奨)

最初の設定のみでは、しばらく使用していないとUbuntuのデスクトップがロックされてしまう。そうなると、デフォルト設定ではリモートデスクトップから締め出されてしまう。再ログインのためには、本体にアクセスしてロック解除をしなければならない。

これはGnomeの設定で解除できるので、リモートデスクトップからもロック解除ができるように設定する。

デフォルトのブラウザはFirefoxなので、ブラウザを開いてChromeを検索して、ダウンロードする。

ダウンロードするのは64bitのdeb版をダウンロードする。

ダウンロードしたファイルをインストールする。

$ cd ~/Downloads
$ sudo dpkg -i google-chrome-stable_current_amd64.deb

インストールされたChromeを開き、Gnomeのエクステンションのページを開く。

https://extensions.gnome.org/

「Click here to install browser extension」のリンクをクリックする。

「Add to Chrome」ボタンをクリックして、インストールを行う。

「Add extension」ボタンをクリックする。

シンクロはしなくて良いので、×で閉じる。

次に、最初のページからwikiページに移動する。

https://wiki.gnome.org/Projects/GnomeShellIntegrationForChrome/Installation

Ubuntu用インストールの項目に書いてあるように、インストールしたエクステンションを有効にするために、パッケージをインストールする。

$ sudo apt-get install chrome-gnome-shell

次に、「Allow Locked Remote Desktop」を検索してクリックする。

スライダーをONにする。

インストールを実行する。

これで、一定時間経ってロックされてもリモートデスクトップからは切り離されない。

ただし、再起動時などの場合はログインが必要になるので、物理マシンの操作が必要になる。ログイン前から使用したい場合は今のところxrdpをインストールするしかない。

自動ロックとスリープの設定解除(非推奨)

設定で自動ロックしない、またスリープしない設定にもできるが、セキュリティの観点からあまりお勧めしない。

設定方法は以下の画面を参照してください。

XRDPの設定

xrdpのインストールと設定

更新をしてから、xrdpをインストールする。

$ sudo apt update
$ sudo apt install xrdp

xrdpを有効に設定する。

$ sudo systemctl enable --now xrdp

ファイアーウォールにxrdp用のポートを開ける。

$ sudo ufw allow from any to any port 3389 proto tcp

これで設定は完了です。

Windows10標準の「リモートデスクトップ接続」アプリで接続する

スタートメニューから入力するか探して「リモートデスクトップ接続」を開く。

IPアドレスでもホスト名でも接続できるが、ホスト名でうまく接続できない時はIPアドレスを指定すると良い。

基本的な使い方は、すでに説明してあるので割愛するが、警告を過ぎた後にxrdpのログイン画面が表示される。

「Session」は「Xorg」のままで、既に存在するユーザー名とパスワードでログインする。

Ubuntu上の認証画面が表示される。

xrdpのログイン画面で入力したユーザーのパスワードをもう一度入力して、「Authenticate」ボタンをクリックする。

これでログイン完了となる。問題が無ければ、デスクトップが表示される。

リモートデスクトップのセッションを終了したら、再度接続するときはxrdpのログインを再度行う必要がある。

ログアウトしなかった場合は、そのままのデスクトップが残っているし、ログアウトも可能。接続にひと手間かかるけど、これだけで再起動にも対応できるし、デフォルト設定を変える必要もないので、個人的には十分だと思います。

ただ、本体に直接アクセスする場合があるのなら、使わないときはログアウトをお勧めする。リモートデスクトップでログイン中は、本体にログインしてもデスクトップが表示されずホワイトアウトしたままになるので、びっくりしてしまう。

いざと言う時のために、openssh-serverはインストールしておくことをお勧めする。

Ubuntu22.04LTS標準のリモートデスクトップを使うか、XRDPを使うか

22.04標準搭載ののリモートデスクトップ機能を使う

こちらは一癖あります。

というのも、ログイン済みの状態でしか使用できなません。そのため、結構使いにくいというか、WEBインターフェースのある仮想マシンなどでない限り、時々物理的にマシンにアクセスする必要があります。

そのため、自分専用のマシンであれば問題は無いかと思いますが、共用マシンであったり、社内セキュリティポリシーなどの都合でパスワードをかける必要があったり、一定時間使用しないとロックする場合(標準仕様)は、このリモートデスクトップ機能は使いづらいです。

回避策としては、以下の二つがあるかと思います。

  • 再起動したらログイン処理が必要になってしまうので、オートログインをオンに設定する。
  • 一定時間で自動でロックされるので、自動ロックをオフに設定する。

このリモートデスクトップは、実際のデスクトップをリモートで操作するので、どちらのPCでも操作が可能なのが、ポイントとなります。

XRDPを使う

こちらは、Linuxのリモートデスクトップでは代表的なものです。

ただ、音声を接続元に飛ばすために小細工が必要で、うまくいかないことも多いので、音声はいらないという場合には、一番使いやすいかと思います。

ただ、リモートで接続している時は、本体の方はログアウトされています。また、逆に本体でログインしている時は、リモートでは接続できません。

また、設定やインストールがWindowsに比べて少し面倒なので、慣れていない人は敬遠するかもしれません。

その他の方法を使う

VNC、TeamViewer、AnyDeskなど、リモートデスクトップのアプリは色々あるので、それらを使用することもできます。

ログイン処理を行えるものもありますが、反応速度、画面の粗さ、音声入出力など、製品ごとの良い点と悪い点を比較して、一番良いものを使うのが良いかと思います。

AnyDeskがSnapでも入れられるので、とても簡単です。

https://anydesk.com/ja

まとめ

Ubuntu 22.04 LTSで標準搭載でリモートデスクトップが使えるのは歓迎だけど、自分はxrdpで使っていきたいと思います。

というか、音声の入出力のための設定が面倒なので、個人的には普段使いをUbuntuにして、Windows10Proに対してリモートデスクトップで接続する方法にシフトしていきたい。

データベースのGUIアプリ、VPNのGUIアプリでいいものがあれば、もうUbuntuに移行できそうな気がする。