こんにちは、エンジニアのtoyamaです。

昨今の新型コロナウイルス感染症の拡大により、リモートワークを余儀なくされる方が増えていると思われます。 そこで会社のパソコンを家のパソコンから操作できたら…と思う方がいるのではないでしょうか? そこでおすすめするのがchromeのリモートデスクトップ機能です。

chromeリモートデスクトップ

リモートデスクトップといえば他にもたくさんあると思いますが、chromeのリモートデスクトップをおすすめする理由は設定がとてもかんたんで、googleのアカウントさえあれば設定が可能な点です。接続する側のPCは、chromeやfirefoxなどのネットワークブラウザさえあれば接続でき、特別なクライアントソフトをインストールする必要がない点も魅力です。 AndroidやiPhoneから接続することもできますが、こちらは専用のアプリが必要になります。

今回はMacとWindowsでの設定方法に加えて、Ubuntuでの設定方法もご紹介します。

ホスト側(接続される側)の設定

Windows、Macでの設定方法

ホスト側(接続される側)のPCでこちらのページにアクセスしてgoogleアカウントでログインしましょう。リモートデスクトップ用のgoogleアカウントを新しく作成するのをおすすめします。ログインしたら、リモートアクセスの設定からダウンロードボタンを押します。ダウンロードが完了したら画面の指示の通りにインストールを進めましょう。設定途中でPINの設定が求められるので、好きな番号を入れて、必ずメモしておきましょう。 設定後、リモートのデバイス欄に「オンライン」で表示されれば完了です。 Windows、Macはこれでホスト側(接続される側)の設定は完了です。

ubuntuでの設定方法

ubuntuでの設定方法は自分が設定したときにうまく設定できた方法をご紹介します。 ubuntu-desktopがインストールされており、デスクトップなどのGUI関連がインストールされていることを前提で話を進めます。 ubuntuの設定は、上記のwindows、macのようにインストール後、ソースコードを少し書き換える必要があります。 まずchromeリモートデスクトップを停止します。

$ sudo systemctl stop chrome-remote-desktop.service

続いて以下のコマンドで現在のディスプレイナンバーを確認します。

$ echo $DISPLAY :0

この番号は、今画面に表示されている画面がubuntuの中では、0番のディスプレイとして認識されていることを示します。 直接PCを触っているときには、このディスプレイでchromeや端末が立ち上がるのですが、なぜかインストールしたままのchromeリモートデスクトップでは、異なるディスプレイナンバーでプログラムが立ち上がるようで、リモート接続している画面に壁紙しか表示されないという現象が起こるようです。 そこで、chromeリモートデスクトップのソースコードを一つのディスプレイを使用する設定に書き換えます。

$ sudo vim /opt/google/chrome-remote-desktop/chrome-remote-desktop

まず108行目のディスプレイナンバーを20から0に書き換えます。

108c108 < FIRST_X_DISPLAY_NUMBER = 20 --- > FIRST_X_DISPLAY_NUMBER = 0

続いて、425、426行目、ディスプレイナンバーをインクリメントしている部分をコメントアウト。

425,426c425,426 < while os.path.exists(X_LOCK_FILE_TEMPLATE % display): < display += 1 --- > #while os.path.exists(X_LOCK_FILE_TEMPLATE % display): > # display += 1

最後に、708行目〜711行目を以下のように設定。

708,709c708,711 < self._launch_x_server(x_args) < self._launch_x_session() --- > #self._launch_x_server(x_args) > #self._launch_x_session() > display = self.get_unused_display_number() > self.child_env["DISPLAY"] = ":%d" % display

修正後、chromeリモートデスクトップを再起動します。

sudo systemctl restart chrome-remote-desktop.service

これで作業は完了です。

クライアント側(接続する側)の設定

ホスト側に設定したgoogleアカウントでログインし、こちらのページを開きます。 ホストの設定が完了していれば、先程のPCがオンラインとして表示されているはずです。 クリックすると、接続中になり、PINの入力が求められるので、先程設定したPINを入力します。 ホストのデスクトップがひらけば、接続成功です。

おわりに

ubuntuでのchromeリモートデスクトップの設定に困っている方の役に立てれば幸いです。 コロナウイルスに負けないようにがんまりましょう!

Pocket