背景
Raspberry Pi OSに標準で入っているwayvncの認証が難解だったので、認証と通信の暗号化をsshに任せてVNC接続しました。当初は遠隔デスクトップ操作にVNCではなくRDPを使う予定でしたが、現時点で最新のOSではRDOサーバーであるxrdpの接続時のエラーを除去できなかったので、Raspberry Pi OSに最初からインストールされているVNCを利用しました。
備忘録として設定方法を記事に残します。
使ったもの
- Raspberry Pi 3B + 起動に必要な周辺機器(電源、SDカード)
- Raspberry Pi OS 32bit desktop full 2024.11公開版
- Raspberry PiにVNCで接続するPC
OSがubuntu22.04のPCを使いました。 - remmina
リモートデスクトップ接続用のプログラムです。
下記コマンドでインストールしました。sudo apt install remmina
raspi-configでVNCを有効化
下記コマンドで有効化できます。sudo raspi-config nonint do_vnc 0
VNCを有効化すると2024.11版のRaspberry Pi OSではwayvncが有効になります。
下記のコマンドで状態を確認できます。
systemctl status wayvnc.service
今回動作確認したwayvncのバージョン情報はこちらです。
wayvnc --version
wayvnc: 0.9-dev
neatvnc: 0.9-dev
aml: 0.3.0
動作確認のため安全でない方法で一旦繋ぐ
remminaからRaspberry PiにVNC接続を試みると、初期設定では下記の画面が表示されます。Enter certificate authentication filesとあるので、認証系のファイルを渡したら良いのだとは思いますが、対象ファイルが多いのでこの認証方法は使わないことにしました。
標準の認証方法でログインする方法を把握されていたら、コメントなどで教えていただけると嬉しいです。
remminaのリポジトリにもissueとして報告されています。
VNC from Ubuntu to Raspberry Pi OS by wayvnc: certificate not recognized
ということで、wayvncの設定を変更して認証無しで一旦VNC接続してみます。
設定ファイルのauthとpamの設定をfalseにすると認証無しで接続可能な危険な状態になります。
/etc/wayvnc/config
enable_auth=false
enable_pam=false
# enable_auth=true
# enable_pam=true
wayvncを再起動すると設定が反映されます。
sudo systemctl restart wayvnc.service
再起動が成功しているか確認します。
systemctl status wayvnc.service
Raspberry Piに繋ぐPCからremminaでVNC接続します。
remminaの設定内容はこちらです。
- プロトコル: VNC
- サーバー: Raspberry Pi OSに設定したホスト名.local
ホスト名を変えてない場合は「raspberrypi.local」で繋げます。
IPアドレスでも良いです。
この状態は一時的にしてください。
上記の設定で繋がりました。
ssh経由でVNC接続
remminaにsshトンネル機能があるので、それを使ってRaspberry Piにsshでログイン後にVNC接続します。remminaのissueで提案されていた方法です。
Raspberry Pi側はログインした人のみがVNC接続可能なように、addressをlocalhostか127.0.0.1にします。
先程設定したauthやpamの設定は引き続きfalseにします。
/etc/wayvnc/config
address=localhost
# address=::
enable_auth=false
enable_pam=false
# enable_auth=true
# enable_pam=true
remminaからssh経由で接続します。
基本設定のタブのサーバーをlocalhostにします。
sshトンネルのタブを開いて下記の設定を行います。
- 「SSHトンネルを有効にする」を押して有効化
- 接続先を「カスタム」にしてRaspberry Piの「ホスト名.local」かIPアドレスを記載
- 必要な認証情報を入力
今回は接続元のsshキーをRaspberry Piのauthorized_keysに登録済みなので、公開鍵方式にしました。 - ssh接続するRaspberry Piのユーザー名を記載
パスワード認証方式を使う方は、認証方式を「パスワード」にしてパスワードを記載してください。
上記の設定でssh経由のVNC接続ができました。
おわり
2024年11月版のRaspberry Pi OSに標準で入っているVNCプログラムwayvncを有効化し、それの標準の認証方式は無効化しつつlocalhostでの接続のみを許可し、sshトンネルを経由してVNC接続できました。RDPの設定を試みたもののxrdpが動かず、標準でインストールされているwayvncの扱いに戸惑いましたが、remminaのsshトンネルを利用する安全なVNC接続方法を把握できて良かったです。
参考
ラズパイbookwormのwayvncと接続する(RealVNC)VNC from Ubuntu to Raspberry Pi OS by wayvnc: certificate not recognized
0 件のコメント :
コメントを投稿