Azure Ubuntu 24.04のバックエンドデスクトップ表示・操作例
Azure仮想マシンのUbuntu系のイメージにはデスクトップ版はありません。
しかもWindowsイメージ同様に英語版しかありませんのでユーザ自身が日本語化しなければなりません。
今回選択したイメージは「Ubuntu Pro 24.04 LTS - x64 Gen2」で、その仮想マシン名は「avmubt2404」としました。
サイズはB2s(2 vCPU、4GBメモリ)としました。
Ubuntu ProのイメージもUbuntu Serverのイメージと同様の手順で日本語デスクトップ化できます。
その日本語デスクトップですがAzure Cloud上にあるHyper-V仮想マシンは直接見ることも触ることもできずあくまでもRDP接続して見るのが普通です。
しかし実際のHyper-V仮想マシンでのデスクトップ表示内容とRDP接続した場合のデスクトップ表示内容が若干異なる場合があります。
例えば、「設定」アプリの場合ですが実際のHyper-V仮想マシンでのデスクトップでは「Ubuntu Desktop」という項目があります(Dockの場所や大きさの設定用)。
ところがRDP接続した場合のデスクトップでは「Ubuntu Desktop」という項目がありません。
極端に言えば、RDP接続して見えるデスクトップは実際のバックエンドデスクトップとは若干違った虚像のデスクトップということになります。
両者の表示上の違いがどれだけあるかは分かりませんが、ここでは実際のHyper-V仮想マシン側のデスクトップの表示内容確認や操作する簡単な方法をご紹介致します。
尚、説明の都合上以下の用語を使用させて戴きます。
- バックエンドデスクトップ
Azureにおける実際のHyper-V仮想マシンでのデスクトップのことで、AzureユーザはそのHyper-V仮想マシンの実物を直接見たり操作したりできる訳ではありません。
そこでここでのバックエンドデスクトップの画像は起動・再起動時に自動ログインした場合にリモートコントール接続(下記説明参照)して表示されるデスクトップをキャプチャしたもので代用しています。
- フロントエンドデスクトップ
通常の3389ポートでRDP接続して表示されるデスクトップをフロントエンドデスクトップと呼ぶことにします。
- リモートコントール接続
通常のRDP接続ではセッション競合が発生してRDP接続ができない場合があります。
例えば、GNOMEセッションとしてログインしたデスクトップに対して同じGNOMEセッションでのRDP接続はできません。
通常のRDP接続ではセッション競合回避のために接続先をログイン画面状態にしておいてからRDP接続して利用するかと思います。
Ubuntu 24.04に標準装備されているリモートコントール接続とは、接続先デスクトップと同じデスクトップを表示させるためのものです。
通常のリモートコントール接続では実際にログインした状態でのデスクトップに接続して使用するのが普通です。
更に、ログイン画面表示状態のままRDP接続して更にリモートコントール接続するとリモートコントール接続画面にはRDP接続デスクトップがそのまま表示されます。
- 自動ログインとデフォルトキーリングについて
「設定」アプリの「システム」−「Remote Desktop」を開く際、以下の表示を目にするかと思います。
アプリケーションがキーリング"デフォルトのキーリング"へアクセスしようとしましたが、ロックがかかっていました。
|
この表示についてはロック解除のパスワードを手動で入力することで「Remote Desktop」を開けるようになります。
「システム」−「Remote Desktop」で[Desktop Sharing]と[リモートコントロール]がOnになっている場合で自動ログインされる場合はそのロック解除に失敗しリモートコントロールのパスワード設定ができなくなります。
そのため仮想マシンにssh接続して「grdctl status --show-credentials」を実行すると「Passwod: (null)」と表示されます。
自動ログインでデフォルトのキーリングをロック解除する方法はいくつかあるようですが、最も安易な方法は最初からロックをかけておかないという方法です。
最初からロックをかけておかないという方法はセキュリティ的には大きなリスクを伴いますが、テストのためと割り切って使う分についてはOKかと思います。
デフォルトのキーリングにロックをかけない手順は以下の通りです(簡単に言うと「空パスワード」の設定です)。
具体的には仮想マシンへの通常のRDP接続画面にて下記の操作を行います。
- アプリ一覧(Show Apps)の「ユーティリティ」の「パスワードと鍵」を開きます。
- デフォルトのキーリングの右クリックメニューから[パスワードを変更]を選択します。
- パスワード変更画面で空パスワードのまま[続ける]をクリックします。
- 空のパスワード指定に対する確認画面で[続ける]をクリックします。
- デフォルトのキーリングのアイコンがロックの外れたアイコンに変わります(下の画像で判別可能でしょうか?)。
これで自動ログインを行ってもgrdctl status ...でパスワード確認もできるのでリモートコントロール接続が可能となります。
- 自動ログイン設定
sudo nano /etc/gdm3/custom.confで下記の2行を[daemon]セクションに追加します(amberユーザでの例です)。
AutomaticLoginEnable = true
AutomaticLogin = amber
|
- NSGでのポート3390の開放設定
xRDP導入済の場合はリモートコントロール接続用ポートは3390となります。
- 仮想マシンの再起動
- 自動ログインの確認例
ps aux|grep amber|grep gnome-sessionで色々表示されれば自動ログインが成功しています。
- リモートコントロール接続
(1)仮想マシンにssh接続して「grdctl status --show-credentials」コマンドでパスワードを表示させます。
(2)仮想マシンへのRDP接続ファイル(例:avmubt2404.rdp)の編集で接続先に「:3390」を付加して接続します。
(3)資格情報入力ダイアログでは「grdctl status --show-credentials」コマンドで表示されたパスワードを手入力します(コピペはできないようです)。
(4)リモートコントロール接続したデスクトップが表示されます。
「設定」アプリに「Ubuntu Desktop」が表示されています。
※ トップパネルのオレンジ色のアイコンはリモートコントロール切断(接続停止)のアイコンです。
(5)通常のRDP接続同様にリモートコントロール接続でも動画再生サウンドはWindows側から聞こえてきます。
(6)DeXでの利用例;
DeXのWindows AppからAzure仮想マシン(Windows 11)にRDP接続し、そのWindowsから別Azure仮想マシン(Ubuntu 24.04)への3390ポートでのリモートコントロール接続もOKでした。
(7)Azure仮想マシン(Windows 11)からのリモートコントロール接続例
日本語化が不完全なAzure仮想マシン(Windows 11)からリモートコントロール接続してみました。
リモートコントロール接続先でのテストサウンドもAzure仮想マシン(Windows 11)へのRDP接続元WindowsのPCスピーカから聞こえてきました。
(8)32bit版Windowsのリモートデスクトップ接続クライアントからのリモートコントロール接続について;
- 32bit版Windows 10のリモートデスクトップ接続クライアントからのリモートコントロール接続はOKでした。
- しかし、32bit版Windows 7のリモートデスクトップ接続クライアントからのリモートコントロール接続はNGでした。
32bit版Windows 7のリモートデスクトップ接続クライアントからのリモートコントロール接続では「プロトコルエラー」となりました。
- マルチリモートコントロール接続
(1)リモートコントロール接続している最中に、更に同じアドレス:3390ポート指定でマルチリモートコントロール接続も可能です。
(2)どの画面から操作しても他の画面にも同時ミラーリングされます。
(3)一つの画面のリモートコントロール切断(接続停止)のアイコンをクリックするとすべてのリモートコントロール接続画面が消えます。
- 自動ログインしたバックエンドデスクトップからのログアウト方法
仮想マシンにssh接続して「gnome-session-quit」コマンドを実行するとバックエンドデスクトップからのログアウトが行われます。
- リモートコントロール接続から通常のRDP接続への切り替え例
(1)仮想マシンにssh接続して「gnome-session-quit」コマンドを実行します(バックエンド側は「60秒後」からのログアウトカウントダウン状態になります)。
(2)自動ログアウトされるとバックエンド側はログイン画面になります。
(3)自動ログアウト完了後に通常のRDP接続を実施します。
※ GNOMEセッションでのログイン済状態でのRDP接続でのGNOMEセッション接続はセッション競合エラーとなります。
- RDP接続中のリモートコントロール接続について
リモートコントロール接続は現在ログインして実行されているセッションへの接続となるのでRDP接続時はRDPデスクトップへのリモートコントロール接続となります。
そのためそのリモートコントロール接続表示されたデスクトップでの「設定」アプリには「Ubuntu Desktop」は表示されません。
- おまけ:AnyDeskの導入と活用(バックエンド側ログイン画面の表示例等)
通常のRDP接続やリモートコントロール接続ではバックエンド側ログイン画面を表示することはできません。
しかしAnyDeskを導入することでバックエンド側ログイン画面を確認することができるようになります。
その手順の流れは以下の通りです。
(1)AnyDesk ver 7.0の導入と設定
(2)Waylandディスプレイサーバの無効化
(3)自動ログインとログアウト
(4)AnyDesk接続
- AnyDesk ver 7.0の導入と設定
(1)AnyDesk ver 7.0をダウンロードして、ssh接続して以下のコマンドで今回は旧6.4.0版をアンインストールして7.0をインストールしました。
sudo apt remove --purge anydesk
sudo apt install anydesk ./anydesk_7.0.0-1_amd64.deb
|
(2)リモートコマンド接続デスクトップでのAnyDesk設定(RDP接続ではAnyDeskのトップ画面が表示されません)
(3)NSGによるAnyDeskのための特別なポート開放は不要です。
- Waylandディスプレイサーバの無効化
Azure仮想マシンに限らずWaylandディスプレイサーバのデスクトップにAnyDesk接続すると下記のエラーが表示されます。
ステータス: display_server_not_supported
|
そこでsudo nano /etc/gdm3/custom.confで[daemon]セクションに下記の行を追加します。
そして再起動します。
- 自動ログインとログアウト
(1)再起動すると自動ログインされます。
(2)ssh接続して「gnome-session-quit」コマンドを打つと60秒後には自動的にログアウトされています。
- AnyDesk接続
仮想マシンにAnyDesk接続するとAnyDeskの画面にログイン画面が表示されます。
ユーザをクリックするとパスワード入力画面の右下の歯車アイコンをクリックするとセッション選択オプションも表示されます。
※ この仮想マシンにはXfceデスクトップ環境も導入済です。
尚、AnyDeskの利点の一つはAzure仮想マシン同士のファイル転送もAnyDeskファイル転送機能で簡単にできることかと思います。
ftpによるAzure仮想マシン同士のファイル転送はポート20,21の開放だけではうまくいきません。
下記はAzure仮想マシン同士(WindowsとUbuntu)でのAnyDeskファイル実行例です。
(日本語化が完全ではないためか部分的に文字化けが発生しています)
- AnyDesk接続におけるGUIでの仮想マシン(Ubuntu)でのログアウトと手動ログイン例
バックエンドへのAnyDesk接続中においてはGUIでのログアウト/再ログインが行えます。
今回試したのは実PCのWindows 11からAzure仮想マシン(Ubuntu)へのAnyDesk接続です。
- AnyDesk接続したAzure仮想マシン(Ubuntu:avmubt2404)でのGUIログアウト
AnyDesk接続のデスクトップ画面からログアウトを開始します。
ログアウトのカウントダウンが開始されて60秒後には自動ログアウトされてログイン画面が表示されます。
しかし、ログイン画面の表示直前には下記画像のようなAnyDeskの「お待ちください」が表示されます。
(つまりAnyDesk接続は接続先がログアウトされても接続は継続されるということです)
- ログイン画面
ログアウトのカウントダウンが開始されて60秒後には自動ログアウトされてAnyDesk画面にログイン画面が表示されます。
- 手動ログイン操作
AnyDesk画面に表示されたログイン画面からログインします。
- バックエンドのデスクトップが表示されます。
- AnyDesk導入効果
以上のようにAzure仮想マシン(Ubuntu)にAnyDeskを導入することによってAnyDesk接続元でバックエンド画面を見ながらGUIによるログアウト・再ログイン・デスクトップ操作が可能となります。
これはリモートコントール接続が不要ということではありません。
それはリモートコントール接続ができなければAnyDesk IDを確認したり無人アクセス設定をすることができないからです。
- おまけ2:Remote Desktop Managerアプリの利用例
今回使用の仮想マシン(avmubt2404)で自動ログインされた状態に対するAndroidスマホのGalaxy S22でのWindows Appアプリからのリモートコントロール接続では砂嵐状態の表示となります。
※ S22のDeX上のWindows Appアプリからのリモートコントロール接続でも砂嵐状態の表示となります。
スマホからのリモートコントロール接続でも砂嵐状態表示にならないものとして次のものがあります。
- Android用「Remote Desktop Manager」(RDMアプリ)
(1)プラットフォーム上の制限により、スマホ単体でのRDMアプリの画面キャプチャは許可されていません。
(2)但し、DeX上ではRDMアプリの画面キャプチャは可能となっています。
- iPhone用「Remote Desktop Manager」(RDMアプリ)
(1)プラットフォーム上の制限は特になく、iPhone単体でのRDMアプリの画面キャプチャは可能となっています。
(2)最初のセットアップウィザードでの「Master password」設定はアプリのロック解除のために必須となっています(Touch IDを使用する場合は必須ではありません)。
今回使用の仮想マシン(avmubt2404)で自動ログインされた状態に対するRDPアプリからのリモートコントロール接続設定手順は以下の通りです。
※ Android版とiPhone版で設定する内容は同じですが、設定保存のためのアイコン表示が若干異なっているだけです。
【Andorid版でのリモートコントロール接続設定例】
- 「Choose a data source」画面での選択
デフォルトの「Local」のままでOKです。
- [+ Add entry]ではデフォルトの[Add RDP]が選択されたままでOKです。
- 接続設定の詳細
(1)Name:rcavmubt2404としてみました。
(2)LOGONセクションでの設定
- Host:仮想マシンのパブリックグローバルIPアドレス
- Port:3390
- RDP type:Normal(デフォルト)のままでOKです。
- Username:仮想マシン作成時の管理者ユーザ名を指定
- Domain:設定なし
- Password:リモートコントロール接続のパスワードです。
・仮想マシン作成時の管理者に設定したパスワードではありません。
・grdctl status --show-credentialsで得られるPasswordを指定します。
- [Always ask for password]はOff(デフォルト)のままとします。
- 接続設定を保存します。
「Local data source」画面に接続設定としての「rcavmubt2404」エントリが表示されます。
リモートコントロール接続は以下の手順となります。
(1)「Local data source」画面での「rcavmubt2404」エントリを選択します。
(2)三角の再生アイコンをタップします。
(3)デスクトップが表示されます。
この手順はDeXでも同じです。
DeXではアンドロイドスマホ用のアプリとリモートコントロール接続画面を同時に操作することが可能となります。
DeXではRDMアプリによるリモートコントロール接続画面操作とアンドロイドスマホ用のアプリ(ファイルマネージャ等)を同時に操作することが可能となります。
- おまけ3:Azure仮想マシン同士でのFTPについて
Azure仮想マシン(Windows 11:仮想マシン名「avmwin11」)とAzure仮想マシン(Ubuntu 24.04 Pro:仮想マシン名「avmubt2404」)の間のFTPについて補足します。
Windows 11側のFTPサーバはIIS管理下のFTPサーバでパッシブモード接続設定済です。
Ubuntu 24.04 Pro側のFTPサーバはvsftpdでこれについてもパッシブモード接続設定済です。
- Windows 11側のFTPサーバへのパッシブモード接続はOK
Azure仮想マシン(Ubuntu 24.04 Pro)からAzure仮想マシン(Windows 11)のFTPサーバに対するパッシブモード接続はOKでファイル一覧も問題なく取得できます。
FTP接続元からPASVコマンドを実行するとAzure仮想マシン(Windows 11)側のパブリックIPアドレスが返ってきます。
- Ubuntu 24.04 Pro側のFTPサーバへのパッシブモード接続はNG
Azure仮想マシン(Windows 11)からAzure仮想マシン(Ubuntu 24.04 Pro)のFTPサーバに対するパッシブモード接続はNGでファイル一覧取得もできません。
実際、FTP接続元からPASVコマンドを実行するとAzure仮想マシン(Ubuntu 24.04 Pro)側のパブリックIPアドレスが返ってきません。
※ 尚、イントラネットからAzure仮想マシン(Ubuntu 24.04 Pro)側のパブリックIPアドレス指定でのFTP接続では問題なく使用できます。
Ubuntu 24.04 Pro側のFTPサーバへのパッシブモード接続の代替えはAnyDeskのファイル転送機能がよいかと思います。
しかしどうしてもFTPクライアントアプリを使用したいのであればフリーウェアのWinSCPを使用するのがよいかとも思います。