Ubuntu 22.04 がリリースされたので、18.04 を入れてあったマシンへ新規インストールをしてみています。
それで、リモートから自宅の Ubuntu マシンと Windows マシンを使えるようにしたいので検討中です。インターネットにグローバルで SSH ログインができるマシンがあるので、それを経由して設定をする予定です。
下記のような感じで SSH 接続ができるようにすることを考えています。
ssh -A -l user001 www.example.jp -t ssh -p 2222 localhost
ローカルマシンの Ubuntu 22.04 (ubuntu2204) からグローバルの www.example.jp へは autossh のリバースポートフォワードを使って SSH の通信路を用意します。www.example.jp:2222 へ SSH ログインすると ubuntu2204 へ SSH ログインできるようにします。
手元に macOS マシンの mbp があるとして、mbp から上記のコマンドで多段 SSH ログインをすると、ubuntu2204 へ SSH ログインができるようになるということです。
SSH で接続ができたら Chrome Remote Desktop の設定をして、ubuntu2204 へ Chrome ブラウザからアクセスできるようにします。そうすると、ubuntu2204 の Remmina(RDP クライアント)が使えるようになるので、それを使って自宅の Windows マシンへ Windows リモートデスクトップでアクセスすれば良いと考えています。
macOS – Linux – Windows とつなぐので、キーボードのマッピングがどこかでうまくいかないかもしれなく、日本語入力がうまくできないという可能性はあります。
その場合は、VPN 構築をして VPN 経由で Windows リモートデスクトップを使うという方針にする予定でいます。
今日は Ubuntu 22.04 をインストールして openssh-server を追加、スワップメモリの設定、Chrome Remote Desktop の設定をした程度ですが、少しずつ作業をしていくつもりです。ちなみに openssh-server をインストールするには次のようにします。
sudo apt update && sudo apt -y upgrade sudo apt -y install openssh-server
ちなみに SSD のディスクへ Linux をインストールすると、swapfile をどうするのかという話がでてきます。SSD だと /swapfile が swap として用意されるようなのですが、ここへのアクセスが頻繁に起こると SSD の寿命が短くなりそうで嫌ですよね。自分は USB メモリを別途用意して、それをマウントするということをよくしているのですが、今回用意したマシンでは HDD を2台接続してあるので、そこにスワップファイルを用意しました。
HDD は /mnt/hdd01 のような感じで自動マウントするように /etc/fstab へ設定済みだとします。/mnt/hdd01/swapfile のようなファイルをスワップファイルとして用意して、これを使うように /etc/fstab に設定を書いて対応しました。
他にもいろいろ作業をしていますが、具体的な手順は次の通りです。
ディレクトリ名は英語が良いので下記で変更
LANG=C xdg-user-dirs-gtk-update
google-chrome-stable_current_amd64.deb など、deb ファイルをインストールするには、依存関係もチェックしてくれる gdebi が便利なのでインストール。あらかじめダウンロードしておいた Google Chrome の deb ファイルをインストール
sudo apt -y install gdebi sudo gdebi ~/Downloads/google-chrome-stable_current_amd64.deb
キーボードは A の左を Ctrl キーにしたいので XKBOPTIONS へ ctrl:swapcaps を指定します。ここでは GUI で作業をしていたので gedit コマンドを使っていますが、vi や nano や emacs コマンドを使ってコンソールで編集しても良いです。
$ sudo gedit /etc/default/keyboard $ cat /etc/default/keyboard (略) XKBMODEL="pc105" XKBLAYOUT="jp" XKBVARIANT="" XKBOPTIONS="ctrl:swapcaps" (略)
スワップメモリの状態は free コマンドや swapon –show コマンドでわかります。
$ free -m (略) $ sudo swapon --show (略)
swapoff でスワップメモリの利用を停止することもできます。
sudo swapoff -a
起動時にスワップメモリを使わないようにするには、/etc/fstab の swap ファイルの指定行の先頭に # をつけてコメントにします。
$ sudo gedit /etc/fstab $ cat /etc/fstab (略) #/swapfile none swap sw 0 0 (略)
swapfile を作成するには次のようにします。
sudo fallocate -l 32G /mnt/hdd01/swapfile sudo chmod 600 /mnt/hdd01/swapfile sudo mkswap /mnt/hdd01/swapfile sudo swapon /mnt/hdd01/swapfile
/mnt/hdd01 は先にマウントがされている必要があるので swap ファイルについて /etc/fstab へ指定するときには、基本的に最後に書いておくと良いはずです。ここでは次のようにしました。
$ cat /etc/fstab (略) /mnt/hdd01/swapfile none swap sw 0 0 #/swapfile none swap sw 0 0 (略)
ついでに Chrome Remote Desktop も先に設定してしまいます。資料としては「Compute Engine での Linux 向け Chrome リモート デスクトップのセットアップ | Cloud アーキテクチャ センター | Google Cloud」といったものも参考になります。
普段使うマシン(ここだと mbp)で Chrome を起動し、Google アカウントでログインした状態で リモート アクセス – Chrome リモート デスクトップ https://remotedesktop.google.com/access へアクセスします。
そこで左のメニューから「SSH 経由でセットアップする」を選択して、「開始」をクリックしてから表示される指示に従います。
ここからは ubuntu2204 へ SSH ログインして作業をします。chrome-remote-desktop_current_amd64.deb をダウンロードしてインストールします。
$ cd ~/Downloads $ wget https://dl.google.com/linux/direct/chrome-remote-desktop_current_amd64.deb $ sudo gdebi ~/Downloads/chrome-remote-desktop_current_amd64.deb (略)
mbp の Chrome で「次へ」をクリックすると、各 OS で実行するコマンドが表示されます。Ubuntu は Debian 系なので、Debian で設定するためのものをコピーして ubuntu2204 で実行します。PIN コードの入力が必要です。ここで指定した PIN コードが実際にリモートアクセスするときに必要になるので忘れないようにします。
$ DISPLAY= /opt/google/chrome-remote-desktop/start-host \ --code="(略)" \ --redirect-url="https://remotedesktop.google.com/_/oauthredirect" \ --name=$(hostname) Enter a PIN of at least six digits: (6文字以上の数字でPINコードを入力) Enter the same PIN again: (上で入力したPINコードを再度入力)
これで設定がうまくいくと、mbp の Chrome で Chrome Remote Desktop の画面をリロードすると、ubuntu2204 が一覧に追加されます。開いて使ってみると良いでしょう。
ちなみに、 Chrome Remote Desktop は systemctl コマンドで無効化できます。user001 用のものを無効化するには systemctl disable を使います。
$ sudo systemctl disable chrome-remote-desktop@user001 (略)
disable を enable とすれば有効化、start とすれば開始、stop とすれば停止になります。