xrdp をインストールして、Ubuntu でリモート デスクトップを使用するように構成する

適用対象: ✔️ Linux VM ✔️ フレキシブルなスケール セット

Linux にまだ慣れていない場合や、簡単にトラブルシューティングする場合などは、Secure Shell (SSH) アクセスよりもリモート デスクトップを使用する方が操作が簡単なことがあります。 この記事では、Ubuntu を実行している Linux VM のデスクトップ環境 (xfce) とリモート デスクトップ (xrdp) をインストールして構成する方法を詳しく説明します。

この記事は、Ubuntu 18.04 VM を使用して記載され、テストされています。

注意

インターネット経由でリモート デスクトップを使用すると、ローカル デスクトップの使用と比較して、顕著な "ラグ" (入力待機時間) が発生します。 これは、ローカル インターネット速度や、仮想マシンがホストされているデータセンターからの距離など、複数の要因の影響を受ける可能性があります。 このラグには通常、VM 自体のパフォーマンスは反映されません。

前提条件

この記事は、Ubuntu 18.04 LTS VM または Ubuntu 20.04 LTS VM が Azure にあることを前提としています。 VM を作成する必要がある場合は、次のいずれかの方法を実行してください。

Linux VM にデスクトップ環境をインストールする

Azure のほとんどの Linux VM では、デスクトップ環境は既定でインストールされていません。 Linux VM は通常、デスクトップ環境ではなく SSH 接続を使用して管理されますが、いくつかのデスクトップ環境から選択してインストールできます。 選択したデスクトップ環境によっては、ディスク容量を最大 2 GB 使用し、必要なパッケージのすべてのインストールと構成が両方完了するまでに最大 10 分かかるものもあります。

次の例では、軽量 xfce4 デスクトップ環境を Ubuntu VM にインストールします。 他のディストリビューションではコマンドが若干異なります (たとえば、Red Hat Enterprise Linux をインストールし、適切な selinux 規則をする場合は yum を使用し、SUSE にインストールするには zypper を使用します)。

最初に、VM に SSH 接続します。 次の例では、myvm.westus.cloudapp.azure.com という名前の VM に azureuser のユーザー名を使用して接続しています。 ご自身の値を使用してください。

ssh azureuser@myvm.westus.cloudapp.azure.com

Windows を使用し、SSH の使用に関する詳細が必要な場合は、Windows での SSH キーの使用方法に関するページをご覧ください。

次に、apt を使用して xfce をインストールします。

sudo apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install xfce4
sudo apt install xfce4-session

リモート デスクトップ サーバーをインストールして構成する

デスクトップ環境がインストールできたので、リモート デスクトップ サービスを構成して着信するリモート アクセス接続をリッスンします。 xrdp はオープン ソースのリモート デスクトップ プロトコル (RDP) サーバーであり、ほとんどの Linux ディストリビューションで使用でき、xfce も問題なく使用できます。 Ubuntu VM に次のように xrdp をインストールします。

sudo apt-get -y install xrdp
sudo systemctl enable xrdp

Ubuntu 20 では、xrdp ユーザーに証明書へのアクセス権を付与する必要があります。

sudo adduser xrdp ssl-cert

セッションの開始時に使用するデスクトップ環境を xrdp に指定します。 xfce をデスクトップ環境として使用するように xrdp を構成します。

echo xfce4-session >~/.xsession

次のように xrdp サービスを再起動して、変更内容を有効にします。

sudo service xrdp restart

ローカル ユーザー アカウントのパスワードを設定する

VM の作成時にユーザー アカウントのパスワードを作成した場合は、この手順をスキップしてください。 SSH キー認証のみを使用し、ローカル アカウントのパスワードを設定していない場合は、xrdp を使用して VM にログインする前にパスワードを指定します。xrdp では認証に SSH キーを使用できません。 次の例は、ユーザー アカウント azureuser にパスワードを指定しています。

sudo passwd azureuser

Note

現在、SSHD 構成でパスワードによるログインを許可していない場合は、パスワードを指定しても、SSHD 構成は更新されません。 セキュリティの観点から、キー ベースの認証を使用して SSH トンネルで VM に接続し、xrdp に接続する必要がある場合があります。 そのような場合は、リモート デスクトップのトラフィックを許可するネットワーク セキュリティ グループ ルールの作成に関する次の手順をスキップしてください。

リモート デスクトップ トラフィックにネットワーク セキュリティ グループ ルールを作成する

リモート デスクトップのトラフィックを Linux VM に接続できるようにするには、ポート 3389 で VM への TCP の接続を許可するネットワーク セキュリティ グループ ルールを作成する必要があります。 ネットワーク セキュリティ グループ ルールの詳細については、ネットワーク セキュリティ グループとは何かに関するページをご覧ください。また、Azure portal を使用してネットワーク セキュリティ グループ ルールを作成することもできます

次の例では、az vm open-port で、ネットワーク セキュリティ グループの規則をポート 3389 に作成しています。 Azure CLI から、VM への SSH セッションではなく、次のネットワーク セキュリティ グループ ルールを開きます。

az vm open-port --resource-group myResourceGroup --name myVM --port 3389

Linux VM をリモート デスクトップ クライアントに接続する

ローカルのリモート デスクトップ クライアントを開き、Linux VM の DNS 名または IP アドレスに接続します。

リモート デスクトップ クライアントのスクリーンショット。

VM でユーザー アカウントのユーザー名とパスワードを次のように入力します。

xrdp ログイン画面のスクリーンショット。

認証後、xfce デスクトップ環境が読み込まれ、次の例のように表示されます。

xrdp を介した xfce デスクトップ環境

ローカル RDP クライアントがネットワーク レベル認証 (NLA) を使っている場合は、その接続設定を無効にすることが必要な場合があります。 現在、XRDP は NLA をサポートしていません。 FreeRDP など、NLA をサポートする RDP ソリューションを代わりに使うこともできます。

トラブルシューティング

リモート デスクトップ クライアントを使用して Linux VM に接続できない場合は、次のように Linux VM で netstat を使用して、VM が次のように RDP 接続をリッスンしていることを確認します。

sudo netstat -plnt | grep rdp

次の例では、期待通りに TCP ポート 3389 で VM がリッスンしています。

tcp     0     0      127.0.0.1:3350     0.0.0.0:*     LISTEN     53192/xrdp-sesman
tcp     0     0      0.0.0.0:3389       0.0.0.0:*     LISTEN     53188/xrdp

xrdp-sesman サービスがリッスンしていない場合は、次のように Ubuntu VM でサービスを再開させます。

sudo service xrdp restart

サービスが応答していない理由を確認するには、Ubuntu VM の /var/log のログを確認します。 また、リモート デスクトップ接続の試行中に syslog を監視すれば、エラーを確認できます。

tail -f /var/log/syslog

Red Hat Enterprise Linux SUSE など他の Linux ディストリビューションでは、サービスの再開方法や確認するログ ファイルの場所が異なる場合があります。

リモート デスクトップ クライアントから応答がなく、システム ログにもイベントが表示されない場合は、リモート デスクトップ トラフィックが VM に到達できないことを示しています。 ネットワーク セキュリティ グループ ルールを確認し、ポート 3389 で TCP を許可するルールが設定されていることをご確認ください。 詳細については、アプリケーションの接続の問題のトラブルシューティングに関するページをご覧ください。

次のステップ

Linux VM で SSH キーを作成、使用する方法の詳細については、Azure での Linux VM の SSH キーの作成に関するページをご覧ください。

Windows から SSH を使用する方法の詳細については、Windows での SSH キーの使用方法に関するページをご覧ください。