筆者について
- もうすぐ卒業の高校3年生(もはや帰る気なさそう)
本編
前々回の記事でProxmox上にArch LinuxのVMを建てたと書いたのですが、実は練習がてらその時UTM上にもAarch64のArch Linuxを立てていました(だから記事では二つとも書いてあったのです。ここでおそらくみなさん疑問に思うのは、「なんでVNC接続?」だと思います。それは、将来的にはGUIアプリのビルド検証機として使ってみたいからです。ということで、今回僕はVNC接続をできるように設定していきたいと思います。
VNC接続をする腕の問題
VNC接続をする腕の問題が、セキュリティの確保です。具体的に、僕は現在Macbookを使っているのですが、ここからだとVNC接続をしてもMacのリモート接続とはセキュリティタイプが違うのでセキュリティが確保されません。
ということで、今回これを解決するために使うのがSSHトンネルです。要するにセキュアなSSHトンネルを作った中にノンセキュアのVNC接続を通すということですね!今回は以下の記事を参考にさせていただきました。
ということで、早速インストールしていきます。
前準備
まずはデスクトップ環境をインストールしていきましょう。ちなみに、Arch LinuxのAarch64版はCosmicがないですので、なくなくGnomeをインストールしていきます。
sudo pacman -S gnome
sudo systemctl enable gdm
sudo systemctl start gdm
また、ついでにSSHのサービスもスタートしておきましょう。
sudo systemctl enable sshd
sudo systemctl start sshd
Tiger VNCのインストール
なんとありがたいことにTiger VNCのインストール方法はArch Linuxの公式ホームページに書かれています。これを参考に途中まで続けていきましょう。
さて、とりあえずインストールしていきましょう。
sudo pacman -S tigervnc
まずはユーザーの設定をしましょう。まずは、vncpasswd
でパスワードの設定をします。
vncpasswd
続いて、ユーザーの設定をしていきましょう。/etc/tigervnc/vncserver.users
を編集します。
# TigerVNC User assignment
#
# This file assigns users to specific VNC display numbers.
# The syntax is <display>=<username>. E.g.:
#
+ :2=user # ユーザー名は適宜変更してください。また、ディスプレイナンバーは好きになさってください。
ここで、もう先ほどのガイドは使わなくなります。というのも、Gnomeは最近ずっとWaylandを使っているので、Xorgで動いているGnomeを使う必要があるんですよね。ということで、その設定をしていきたいと思います。
まずは、ホームディレクトリ(~/
)に.xinitrc
を作って編集します。
export XDG_SESSION_TYPE=x11
export GDK_BACKEND=x11
exec gnome-session
ここまで来たらあとはスタートできるのですが、GUIでログインしているままだと使えません。ので、まずはGUIからログアウトしてください。次に、SSHからログインして次のコマンドを入力します。
vncserver :2
そしたらこれで接続できる状態になっていますので、画面共有のアプリから接続しましょう。URIはVMのIP:(5900+ディスプレイナンバー)
、パスワードは先ほど設定したものです。そしたら、下のように接続できるはずです。
さて、今回の本題はこれをSSHトンネルかで行うことです。やっていきましょう。ちなみに、VNCの接続ポートを5902としています。
ssh -L 5902:localhost:5902 user@ip
これで、SSHトンネルを使って接続することができます。
最後に
今回VNCを使ってみましたが、はっきり言ってめっちゃめんどくさいですね。Cosmicがまだまだ実力じゃないことも考慮すると、GnomeのRDP接続を使う方が現実的な気がします。