雑記
 

GCPにLinuxを構築してリモートデスクトップで接続する

2021/2/14

この記事が対象とする製品・バージョン

  Azure × 対象外です。
  AWS × 対象外です。
  GCP 対象です。

目次

概要

この記事ではGCPにLinux(Debian)の仮想マシンを構築し、リモートデスクトップで接続するまでの手順を説明します。

リモートデスクトップなので、画面が表示されマウスやキーボードで操作できます。

セキュアなリモートデスクトップを実現するために、Googleが推奨するChromeリモートデスクトップを使用します。

 

おまけで、Chrome と Visual Studio Code をインストールします。

 

この記事で説明することのほとんどは下記の公式ドキュメントに書いてあることです。

Compute Engine での Linux 向け Chrome リモート デスクトップのセットアップ

 

メモ メモ  - 操作手順や画面は随時変化します

クラウドやWebの画面は、常にアップデートされます。ここで紹介する内容は、私がやったときはこうだったというもので、時間がたつほど画面や手順は変化していくものと思います。多少説明と食い違う点があっても、適宜判断して進めてみるのが良いと思います。

 

前提

前提1. GCP のプロジェクトを使用できる

※GCPプロジェクトは簡単に無料で作成できます。

利用できるGCPのプロジェクトがあり、Chromeでコンソールを開いて操作できることが必要です。

 

前提2. 仮想マシンの料金を支払える

この手順で構築する仮想マシンは課金対象です。

24時間起動しておくと1か月で3000円程度です。1時間だけ起動して停止すれば、1時間分だけ支払いが必要でたったの 4円 程度です。この他にもネットワークやストレージの使用状況によって課金が発生しますが、私の感覚では微々たるものです。

不安な方は料金をご確認ください。

Google Cloud Platform 料金計算ツール

仮想マシン停止中は料金が発生しないので、使用するときだけ起動するようにすればかなりの料金が節約できます。

 

手順1.仮想マシン構築

手順1-1.GCPコンソールで Compute Engine の VMインスタンス のページを表示します。

このURLです。

https://console.cloud.google.com/compute/instances

 

過去に一度も VMインスタンスを構築したことがない場合は、この機能を有効にするか確認するメッセージが表示されるので、有効にするように選択します。

 

手順1-2.インスタンスを作成をクリックします。

 

手順1-3.名前をlinuxgui として、他は何も変更しないで、画面下部の「作成」をクリックします。

私がやったとき(2021/2/10)はデフォルトでマシンタイプが e2-medium (2 vCPU 4 GB メモリ) になっていました。このマシンタイプはかなり安価です。マシンタイプは価格に影響しますので念のためご確認ください。

この画面の右側には1か月マシンを起動したままの状態にした時の参考価格が表示されます。

 

 

手順2.デスクトップ機能のインストール

手順2-1.VMインスタンスの一覧で、linuxgui の SSH をクリックします。

SSHウィンドウが開きます。

 

手順2-2.wget をインストール

そのために、 SSHウィンドウで次のコマンドを実行します。

sudo apt update
sudo apt-get install --assume-yes wget

 

手順2-3.Dedian Linux Chrome リモートデスクトップをインストールします。

そのために、次のコマンドを実行します。

wget https://dl.google.com/linux/direct/chrome-remote-desktop_current_amd64.deb
sudo dpkg --install chrome-remote-desktop_current_amd64.deb 
sudo apt install --assume-yes --fix-broken


手順2-4.デスクトップコンポーネントをインストールします。

そのために、次のコマンドを実行します。


sudo DEBIAN_FRONTEND=noninteractive apt install --assume-yes xfce4 desktop-base

 

手順2-5.xcfe4 を使用できるように設定します。

そのために、次のコマンドを実行します。

sudo bash -c 'echo "exec /etc/X11/Xsession /usr/bin/xfce4-session" > /etc/chrome-remote-desktop-session'
sudo apt install --assume-yes xscreensaver

 

手順2-6.ディスプレイマネージャーサービスを無効にします。

そのために、次のコマンドを実行します。


sudo systemctl disable lightdm.service

 

手順2-7.Chromeをインストールします。

そのために、次のコマンドを実行します。

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg --install google-chrome-stable_current_amd64.deb
sudo apt install --assume-yes --fix-broken

手順2-8.Visual Studio Code をインストールします。

そのために、次のコマンドを実行します。

wget -O vscode.deb "https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64"
sudo apt install ./vscode.deb

手順2-9.ユーザーをグループに追加して、ログアウトします。

そのために、次のコマンドを実行します。

sudo usermod -a -G chrome-remote-desktop $USER
logout

 

手順3.リモートデスクトップの設定

手順3-1.ローカルのパソコンで Chrome を起動し、下記URLに移動します。

https://remotedesktop.google.com/headless

 

手順3-2.ログインして、開始をクリックします。

既にログイン済みであればログイン操作は不要です。

Chromeリモートデスクトップをダウンロードして、リモートのパソコンにインストールします。という画面になります。

 

手順3-3.「次へ」をクリックします。

 

手順3-4.続けて「承認」をクリックします。

 

手順3-5.Debian Linux の欄に長いコマンドが表示されるのでコピーします。

このようなコマンドです。

コマンドの内容は場合によって違うので、ここで例として挙げるコマンドをそのまま使用することは無意味です。


DISPLAY= /opt/google/chrome-remote-desktop/start-host --code="B/2C45f-g6Ju88kesQEjwiLT_8OYsLCN4vK5rUtBBr5CSJHhOL6nXGQHNCpDysmnVzivOPSED" --redirect-url="https://remotedesktop.google.com/_/oauthredirect" --name=$(hostname)

 

手順3-6.GCPコンソールで、もう1度sshボタンをクリックして、SSHコンソールを開きます。

 

手順3-7.コピーしたコマンドを SSHウィンドウに貼り付けて実行します。

 

手順3-8.Enter a PIN of at least six digits: と表示されるので、何か6桁の数字を入力します。

ここで入力した数字は、PINコードと呼びます。今後接続のために必要になるので書き留めておいてください。

 

入力すると、Enter the same PIN again: と表示されるのでもう1度同じ6桁の数字を入力します。

 

手順3-9.logout と入力して SSHウィンドウを閉じます。

 

手順4.リモートデスクトップで接続する

手順4-1.ローカルの Chrome で Chromeリモートデスクトップ に移動します。

URLはこちらです。

https://remotedesktop.google.com/

場合によっては「続行」をクリックする必要があるかもしれません。

 

手順4-2.パソコンにアクセスをクリックします。

 

手順4-3. 「続行する」をクリックします。

正常にできている場合、linuxgui が オンライン と表示されています。

linuxgui をクリックします。

 

手順4-4. PINコードの入力を求められたら、手順3-8で入力した6桁の数字を入力します。

 

手順4-5. おめでとうございます。無事LinuxにGUIで接続できました。

Use default config をクリックします。

ヒント

 

この環境には、既にChromeとVisual Studio Codeはインストールされています。

 

リモートデスクトップを終了するときは、左上のApplications から Log Out > Log Out を選択します。

そして、GCPのコンソールで仮想マシン linuxgui を停止します。停止中は課金が発生しません。

再度接続するときはGCPコンソールで linuxgui を開始してから、手順4のリモートデスクトップで接続するを実施します。

 

 

おまけ:日本語キーボードを設定する

初期状態ではキーボードが英語配列になっているので、日本語は配列を使用するように設定します。

左上の Applications から Settings > Keyboard をクリックします。

Layout で Use system deafults をオフにして、

Keyboard model から 「Japanese」と「106」が入った設定を選びます。

Keyboard layout に Add して Japanese の Japanese (ODAG 109A) を選択します。最初からあるEnglishは削除します。

※正直言って、私はこのあたりはよくわかりません。なんとなくそれっぽいのを選んで試行錯誤したらこれで日本語配列になったという内容を紹介しています。