外出先から自宅のUbuntu18.04に接続する(Chromeリモートデスクトップ)
Google Chromeには『Chromeリモートデスクトップ』という外出先から自宅PCなどにリモート接続する拡張機能があります。
今回は外出先のWindowsノートPCから自宅のUbuntu PCに接続できるか試してみました。
目次
環境
手順
1. Google Chromeのインストール
とにもかくにもUbuntu 18.04 マシンにGoogle Chromeを入れるところから始めます。
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb
インストールが完了したら、Chromeを立ち上げてGoogleアカウントでログインしましょう。
2. Chromeリモートデスクトップのインストール
いくつか手順を踏んでChromeリモートデスクトップをインストールしていきます。
- UbuntuにインストールしたChromeでChromeのウェブストアを開きます
- 「+ CHROMEに追加」からインストールします。
- その画面から「アプリを起動」を押すとChromeリモートデスクトップが立ち上がります
- マイコンピュータの中にある「利用を開始」を押しましょう。
- 「リモート接続を有効にする」を押すとホストインストーラのダウンロードを促されるので、OKを押してダウンロードします。ここでは
$HOME/Download/chrome-remote-desktop_current_amd64.deb
にインストールされたものとします。 - 以下のコマンドでインストールは完了です。
cd $HOME/Download sudo dpkg -i chrome-remote-desktop_current_amd64.deb sudo apt-get install -f
3. グループへの追加
つぎに、カレントユーザをchrome-remote-desktop
グループに追加して再起動します。
sudo usermod -a -G chrome-remote-desktop $USER sudo reboot
4. Chromeリモートデスクトップの修正
重要です。必ず実施してください。
Ubuntu 18.04で動作させるためにChromeリモートデスクトップを一部修正します。
まずChromeリモートデスクトップのサービスを止めます。
sudo systemctl stop chrome-remote-desktop.service
次にオリジナルファイルのバックアップを取ります。
sudo cp /opt/google/chrome-remote-desktop/chrome-remote-desktop /opt/google/chrome-remote-desktop/chrome-remote-desktop.orig
つづいてchrome-remote-desktopを開いて編集していきます。
sudo gedit /opt/google/chrome-remote-desktop/chrome-remote-desktop
まず、echo $DISPLAY
を手元のマシンで実行してください。画面に:0
と表示された場合、FIRST_X_DISPLAY_NUMBER = 20
と記載してある場所を以下のように変更しましょう。
FIRST_X_DISPLAY_NUMBER = 0
※一部のUbuntuバージョンではecho $DISPLAY
が:1
を返します。そのときはを FIRST_X_DISPLAY_NUMBER = 1
にしてください
つぎに関数get_unused_display_number
の中のwhile os.path.exists(X_LOCK_FILE_TEMPLATE % display):
から始まる2行をコメントアウトします。
@staticmethod def get_unused_display_number(): """Return a candidate display number for which there is currently no X Server lock file""" display = FIRST_X_DISPLAY_NUMBER # while os.path.exists(X_LOCK_FILE_TEMPLATE % display): # display += 1 return display
関数launch_session
を以下のように書き換えます。こうすることで、新しいXセッションを立ち上げる代わりに、すでに立ち上がってるセッションを再利用できます(つまり、ホスト側のデスクトップと同じ画面をクライアント側で見ることが出来るようになります)。
def launch_session(self, x_args): self._init_child_env() self._setup_pulseaudio() self._setup_gnubby() # 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
5. Chromeリモートデスクトップの有効化
これがホスト側設定作業の最後です。Chromeリモートデスクトップを開いて「リモート接続を有効にする」をクリックします。
開いた画面で6桁以上のPINを設定してください。他のマシンから接続するときの認証に使うことになります。
マイコンピュータの枠内でUbuntuマシンがオンラインになっていたら成功です。
6. 接続確認
他のPCでChromeを立ち上げて、ホスト側と同じアカウントでログインします。
つぎにChromeリモートデスクトップを開いて、Ubuntuマシンに接続できれば成功です。
うまくいかなかった場合のリセット方法
上の手順でもうまくいかなかった場合はどこかで間違えているかもしれません。以下の手順でリセットして2からやり直しましょう。
ホストプログラムのアンインストールします
sudo systemctl stop chrome-remote-desktop.service sudo apt-get purge chrome-remote-desktop
Chromeを開いてアドレスバーにchrome://apps/
を入れます。Chromeリモートデスクトップのアイコンを右クリックして「Chromeから削除」をクリックします。
参考情報
Google Chrome ヘルプを見るとホーム ディレクトリに.chrome-remote-desktop-session
というファイルを作らないといけない。と書いてありますが今回の手順をとった場合は必要ありません。