リモート デスクトップをインストールして Azure の Linux VM に接続するように構成するInstall and configure Remote Desktop to connect to a Linux VM in Azure

Azure の Linux 仮想マシン (VM) は、通常、セキュリティで保護された shell (SSH) 接続を使用してコマンド ラインから管理します。Linux virtual machines (VMs) in Azure are usually managed from the command line using a secure shell (SSH) connection. Linux にまだ慣れていない場合や、簡単にトラブルシューティングする場合などは、リモート デスクトップを使用する方が操作が簡単なことがあります。When new to Linux, or for quick troubleshooting scenarios, the use of remote desktop may be easier. この記事では、Resource Manager デプロイ モデルを使用して、Linux VM のデスクトップ環境 (xfce) とリモート デスクトップ (xrdp) をインストールして構成する方法を詳しく説明します。This article details how to install and configure a desktop environment (xfce) and remote desktop (xrdp) for your Linux VM using the Resource Manager deployment model.

前提条件Prerequisites

この記事は、Ubuntu 18.04 LTS VM が Azure にあることを前提としています。This article requires an existing Ubuntu 18.04 LTS VM in Azure. VM を作成する必要がある場合は、次のいずれかの方法を実行してください。If you need to create a VM, use one of the following methods:

Linux VM にデスクトップ環境をインストールするInstall a desktop environment on your Linux VM

Azure のほとんどの Linux VM では、デスクトップ環境は既定でインストールされていません。Most Linux VMs in Azure do not have a desktop environment installed by default. 通常、Linux VM は、デスクトップ環境ではなく、SSH 接続を使用して管理されます。Linux VMs are commonly managed using SSH connections rather than a desktop environment. Linux で利用できるデスクトップ環境にはさまざまな種類があります。There are various desktop environments in Linux that you can choose. 選択したデスクトップ環境によっては、ディスク容量を 1 ~ 2 GB 使用し、必要なパッケージのすべてのインストールと構成が完了するまでに 5 ~ 10 分かかるものもあります。Depending on your choice of desktop environment, it may consume one to 2 GB of disk space, and take 5 to 10 minutes to install and configure all the required packages.

次の例では、軽量 xfce4 デスクトップ環境を Ubuntu 18.04 LTS VM にインストールします。The following example installs the lightweight xfce4 desktop environment on an Ubuntu 18.04 LTS VM. 他のディストリビューションではコマンドが若干異なります (たとえば、Red Hat Enterprise Linux をインストールし、適切な selinux 規則をする場合は yum を使用し、SUSE にインストールするには zypper を使用します)。Commands for other distributions vary slightly (use yum to install on Red Hat Enterprise Linux and configure appropriate selinux rules, or use zypper to install on SUSE, for example).

最初に、VM に SSH 接続します。First, SSH to your VM. 次の例では、myvm.westus.cloudapp.azure.com という名前の VM に azureuser のユーザー名を使用して接続しています。The following example connects to the VM named myvm.westus.cloudapp.azure.com with the username of azureuser. 独自の値を使用してください。Use your own values:

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

Windows を使用し、SSH の使用に関する詳細が必要な場合は、Windows での SSH キーの使用方法に関するページをご覧ください。If you are using Windows and need more information on using SSH, see How to use SSH keys with Windows.

次に、apt を使用して xfce を以下のようにインストールします。Next, install xfce using apt as follows:

sudo apt-get update
sudo apt-get -y install xfce4

リモート デスクトップ サーバーをインストールして構成するInstall and configure a remote desktop server

デスクトップ環境がインストールできましたので、リモート デスクトップ サービスを構成して着信接続をリッスンします。Now that you have a desktop environment installed, configure a remote desktop service to listen for incoming connections. xrdp はオープン ソースのリモート デスクトップ プロトコル (RDP) サーバーであり、ほとんどの Linux ディストリビューションで使用でき、xfce も問題なく使用できます。xrdp is an open source Remote Desktop Protocol (RDP) server that is available on most Linux distributions, and works well with xfce. Ubuntu VM に次のように xrdp をインストールします。Install xrdp on your Ubuntu VM as follows:

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

セッションの開始時に使用するデスクトップ環境を xrdp に指定します。Tell xrdp what desktop environment to use when you start your session. xfce をデスクトップ環境として使用するように xrdp を構成します。Configure xrdp to use xfce as your desktop environment as follows:

echo xfce4-session >~/.xsession

次のように xrdp サービスを再起動して、変更内容を有効にします。Restart the xrdp service for the changes to take effect as follows:

sudo service xrdp restart

ローカル ユーザー アカウントのパスワードを設定するSet a local user account password

VM の作成時にユーザー アカウントのパスワードを作成した場合は、この手順をスキップします。If you created a password for your user account when you created your VM, skip this step. SSH キー認証のみを使用し、ローカル アカウントのパスワードを設定していない場合は、xrdp を使用して VM にログインする前にパスワードを指定します。If you only use SSH key authentication and do not have a local account password set, specify a password before you use xrdp to log in to your VM. xrdp では認証に SSH キーを使用できません。xrdp cannot accept SSH keys for authentication. 次の例は、ユーザー アカウント azureuser にパスワードを指定しています。The following example specifies a password for the user account azureuser:

sudo passwd azureuser

注意

現在、SSHD 構成でパスワードによるログインを許可していない場合は、パスワードを指定しても、SSHD 構成は更新されません。Specifying a password does not update your SSHD configuration to permit password logins if it currently does not. セキュリティの観点から、キー ベースの認証を使用して SSH トンネルで VM に接続し、xrdp に接続する必要がある場合があります。From a security perspective, you may wish to connect to your VM with an SSH tunnel using key-based authentication and then connect to xrdp. そのような場合は、リモート デスクトップのトラフィックを許可するネットワーク セキュリティ グループ ルールの作成に関する次の手順をスキップします。If so, skip the following step on creating a network security group rule to allow remote desktop traffic.

リモート デスクトップ トラフィックにネットワーク セキュリティ グループ ルールを作成するCreate a Network Security Group rule for Remote Desktop traffic

リモート デスクトップのトラフィックを Linux VM に接続できるようにするには、ポート 3389 で VM への TCP の接続を許可するネットワーク セキュリティ グループ ルールを作成する必要があります。To allow Remote Desktop traffic to reach your Linux VM, a network security group rule needs to be created that allows TCP on port 3389 to reach your VM. ネットワーク セキュリティ グループ ルールの詳細については、「ネットワーク セキュリティ グループ (NSG) について」をご覧ください。For more information about network security group rules, see What is a network security group? また、Azure Portal を使用してネットワーク セキュリティ グループ ルールを作成することもできますYou can also use the Azure portal to create a network security group rule.

次の例では、az vm open-port で、ネットワーク セキュリティ グループの規則をポート 3389 に作成しています。The following example creates a network security group rule with az vm open-port on port 3389. Azure CLI から、VM への SSH セッションではなく、次のネットワーク セキュリティ グループ ルールを開きます。From the Azure CLI, not the SSH session to your VM, open the following network security group rule:

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

Linux VM をリモート デスクトップ クライアントに接続するConnect your Linux VM with a Remote Desktop client

ローカルのリモート デスクトップ クライアントを開き、Linux VM の DNS 名または IP アドレスに接続します。Open your local remote desktop client and connect to the IP address or DNS name of your Linux VM. VM でユーザー アカウントのユーザー名とパスワードを次のように入力します。Enter the username and password for the user account on your VM as follows:

リモート デスクトップ クライアントを使用して xrdp に接続する

認証後、xfce デスクトップ環境が読み込まれ、次の例のように表示されます。After authenticating, the xfce desktop environment will load and look similar to the following example:

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

ローカル RDP クライアントがネットワーク レベル認証 (NLA) を使っている場合は、その接続設定を無効にすることが必要な場合があります。If your local RDP client uses network level authentication (NLA), you may need to disable that connection setting. 現在、XRDP は NLA をサポートしていません。XRDP does not currently support NLA. FreeRDP など、NLA をサポートする RDP ソリューションを代わりに使うこともできます。You can also look at alternative RDP solutions that do support NLA, such as FreeRDP.

トラブルシューティングTroubleshoot

リモート デスクトップ クライアントを使用して Linux VM に接続できない場合は、次のように Linux VM で netstat を使用して、VM が次のように RDP 接続をリッスンしていることを確認します。If you cannot connect to your Linux VM using a Remote Desktop client, use netstat on your Linux VM to verify that your VM is listening for RDP connections as follows:

sudo netstat -plnt | grep rdp

次の例では、期待通りに TCP ポート 3389 で VM がリッスンしています。The following example shows the VM listening on TCP port 3389 as expected:

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 でサービスを再開させます。If the xrdp-sesman service is not listening, on an Ubuntu VM restart the service as follows:

sudo service xrdp restart

サービスが応答していない理由を確認するには、Ubuntu VM の /var/log のログを確認します。Review logs in /var/log on your Ubuntu VM for indications as to why the service may not be responding. また、リモート デスクトップ接続の試行中に syslog を監視すれば、エラーを確認できます。You can also monitor the syslog during a remote desktop connection attempt to view any errors:

tail -f /var/log/syslog

Red Hat Enterprise Linux SUSE など他の Linux ディストリビューションでは、サービスの再開方法や確認するログ ファイルの場所が異なる場合があります。Other Linux distributions such as Red Hat Enterprise Linux and SUSE may have different ways to restart services and alternate log file locations to review.

リモート デスクトップ クライアントから応答がなく、システム ログにもイベントが表示されない場合は、リモート デスクトップ トラフィックが VM に到達できないことを示しています。If you do not receive any response in your remote desktop client and do not see any events in the system log, this behavior indicates that remote desktop traffic cannot reach the VM. ネットワーク セキュリティ グループ ルールを確認し、ポート 3389 で TCP を許可するルールが設定されていることをご確認ください。Review your network security group rules to ensure that you have a rule to permit TCP on port 3389. 詳細については、アプリケーションの接続の問題のトラブルシューティングに関するページをご覧ください。For more information, see Troubleshoot application connectivity issues.

次のステップNext steps

Linux VM で SSH キーを作成、使用する方法の詳細については、Azure での Linux VM の SSH キーの作成に関するページをご覧ください。For more information about creating and using SSH keys with Linux VMs, see Create SSH keys for Linux VMs in Azure.

Windows から SSH を使用する方法の詳細については、Windows での SSH キーの使用方法に関するページをご覧ください。For information on using SSH from Windows, see How to use SSH keys with Windows.