AzureのLinux VMにリモートデスクトップで接続する方法

今回は、私のメモという意味合いでもAzureのLinux VMにRDPする方法をまとめたいと思います。
# 大まかな流れ
ざっくり書くと下記の手順となります。
1. Azure VMを作成する。
1. VMにxrdpをインストールする。
1. NSGでリモートデスクトップの受信ポートを開放する。
1. 実際にリモートデスクトップでVMに接続する。

# Azureのリソース構造

本題に入る前に、以下の用語について理解する必要があります。
1. 管理グループ
1. サブスクリプション
1. リソースグループ
1. リソース

詳しくはこちらの記事が分かりやすいので、参照してください。

https://az-start.com/managementgroups-subscriptions-resourcegroups/


# Azure VMを作成する
管理グループ、サブスクリプション、リソースグループが作成出来たら本題に入ります。

1. Azureの検索画面で「virtual machines」と入力し、赤枠をクリックする。
![azure1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3314839/fe481275-5d96-0a6a-7695-3688c7badc00.png)
1. 「作成」をクリックする。
![azure2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3314839/4901ac0d-858b-fbc7-a45c-3356ae8f04e2.png)
1. 「Azure仮想マシン」をクリックする。
![azure3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3314839/bbc95bd3-3add-29d1-5881-c10def562e66.png)
1. 仮想マシンの作成の基本画面で以下の通りに入力する。
![azure4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3314839/53f0e4fb-927e-f528-254a-3d4732eb4413.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3314839/d21c292c-87ff-f16b-4222-4517db63af41.png)
    * サブスクリプション：VMを配置したいリソースグループに所属するサブスクリプションを選択する
    * リソースグループ：VMを配置したいリソースグループを選択する
    * ユーザ名：VMにログインする際の任意のユーザー名を入力する
    * パスワード：VMにログインする際の任意のパスワードを入力する

    それ以外は画面の通りに入力して問題ありません。
    ここでのポイントは受信ポートの規則にSSHを設定しておくことです。
    RDPに接続するために、一旦SSHでログインしてコマンドを実行する必要があるので、SSHのポートを開放しておかないと後で躓きます。
    なお、後から設定変更できるため、ポートを閉じても問題ありません。

1. 次にディスクは以下の通りに入力してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3314839/8b3fd5bb-6b2f-c005-c534-3cd16e863e48.png)
1. ネットワークは以下の通りに入力してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3314839/03442b5c-f7c3-0341-30e7-c2c53e54b39e.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3314839/528ffffe-9bb5-b456-260b-d7ee5160b9cb.png)
1. 管理、監視、詳細、タグは設定を変更しません。確認及び作成まで進めて、作成をクリックします。
![azure5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3314839/656d1e16-c71c-8abf-632a-eb10595bd274.png)

1. デプロイが終わるとVMの作成が完了します。次にVMにSSHでログインしてxrdpをインストールします。
![aaa.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3314839/a10a29bd-62cf-a6ad-fd0d-d20b366ba196.png)


# VMにxrdpをインストールする。
下記のサイトをベースにVMにxrdpをインストールします。

https://learn.microsoft.com/ja-jp/azure/virtual-machines/linux/use-remote-desktop?tabs=azure-cli

1. 作成したVMの概要からパブリックIPアドレスをコピーします。
記事投稿時にはVMは削除されているため、今回はパブリックIPアドレスを見せていますが、外部には見せないようにしましょう。
![azure6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3314839/3e30937e-51d8-9f9a-bc11-6880d5073e2d.png)
1. PowerShellを起動し、下記のコマンドを入力します。
ユーザー名はVM作成時に設定したユーザー名、パブリックIPは前の手順でコピーしたIPです。。
    
    ``` bash
    ssh "ユーザー名"@"パブリックIP"
    ```

1. 以下のようなメッセージが表示されるため、「yes」と入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3314839/36fa1cd3-2f8f-c262-4eaa-9c7dbb091322.png)

1. パスワード入力画面が表示されますので、VM作成時に設定したパスワードを入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3314839/8d3a2141-683c-a04b-e80c-0698480e6d81.png)

1. sshでログインが完了したら、以下のコマンドを入力して、インストール完了です。
``` bash
# aptを使用してxfce をインストールする。
sudo apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install xfce4
sudo apt install xfce4-session

# xrdpをインストールする。
sudo apt-get -y install xrdp
sudo systemctl enable xrdp

# xrdp ユーザーに証明書へのアクセス権を付与する
sudo adduser xrdp ssl-cert

# セッションの開始時に使用するデスクトップ環境を xrdp に指定する。
echo xfce4-session >~/.xsession

#  xrdp サービスを再起動して、変更内容を有効にします。
sudo service xrdp restart
```

# NSGのリモートデスクトップの受信ポートを開放する
次にRDPの受信ポートを開放します。
NSGとはネットワークセキュリティグループの略で、パケットフィルタリングやファイヤウォールのような役目をします。
詳細は以下の記事を参照してください。

https://az-start.com/network-security-groups-overview/

それでは、解説していきます。
1. VMを作成したリソースグループから、NSGを選択する。
![azure7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3314839/377c29fe-0a5a-ca92-140e-1df4e8b16731.png)
1. 左のメニューから受信セキュリティ規則を選択する。
![azure8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3314839/19baa561-0a42-c440-cc20-1d5a43d060a6.png)
1. 追加を選択する。
![azure9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3314839/7b6f30c3-25ad-9acc-4f94-035951ed4eed.png)
1. 下記の通りに入力して、追加します。
今回はテスト用のVMなので、どこからでもアクセスできるようにしていますが、仕事などで利用される場合は、ソースやソースポート範囲を適切に設定して、第3者からアクセスできないようにする必要があります。
![azure10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3314839/d1c8e7b2-1fe1-53be-9488-e53d40b1e63d.png)
1. 受信セキュリティ規則に追加されていれば、完了です。
![azure12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3314839/1c3af6ad-a101-0212-c8e2-09f44667ed67.png)


# 実際にリモートデスクトップでVMに接続する。
最後に接続できるか確認します。
1. windowsの検索から「リモートデスクトップ接続」を入力して、以下のアイコンをクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3314839/6d9b7937-5556-32cd-2773-b464bb666506.png)
1. リモートデスクトップ接続画面でパブリックIPとユーザー名を入力する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3314839/74672798-a0d7-c7e0-a878-a94bfbad8df4.png)
1. 証明書が発行されていないので、警告画面が表示されますが、「はい」を押す。
![azure11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3314839/aa646c36-1cf6-3fe5-2ec1-c21d7c7684f1.png)
1. ログイン画面が表示されるので、パスワードを入力する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3314839/546723d9-3b40-87b4-4119-d9a6e38657fc.png)
1. 下記の画面が表示されると、リモートデスクトップで接続できています。お疲れ様でした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3314839/22e5b774-0926-476a-4bd5-74e0691eebae.png)

# まとめ
今回は、Azureの仮想マシンでLinux OSを入れた時にリモートデスクトップ接続する方法を解説しました。
私自身、少し苦戦して色々調べて、解決に至ったので、Azureを触り始めた方のお役に立てれば幸いです。