reComputer RK3576 で RustDesk による無人リモートアクセスを利用する

はじめに

RustDesk はオープンソースのリモートデスクトップソフトウェアです。無人の現場に設置された Edge AI / AIoT デバイスでも、reComputer RK3576 の画面確認、アプリケーション設定の変更、稼働状態の確認を遠隔から行えます。

このガイドでは RustDesk をインストールし、X11 のグラフィカルログイン環境を設定して、次の状況を確認します。

  • デスクトップにログインしている間の表示と操作。
  • 画面ロック後、現地での承認なしに固定パスワードで再接続。
  • ログアウトまたは再起動後、GDM ログイン画面へ接続して遠隔ログイン。

検証環境: reComputer RK3576、Armbian(Debian 12 Bookworm)、GNOME 43 / GDM3、RustDesk 1.2.3(ARM64)。GDM ログイン画面は X11 を使用します。他のシステムバージョンでは手順が異なる場合があります。

#始める前に

#必要なハードウェア

  • reComputer RK3576 1 台。
  • 接続元となる Windows PC 1 台。
  • 両端末と RustDesk に必要なサービスを利用できるネットワーク。
  • 初期設定とテストには HDMI モニターとキーボードを推奨します。

#必要なソフトウェア

デバイスソフトウェア / システム本ガイドで使用したバージョン
reComputer RK3576Armbian / Debian 12 BookwormDebian 12、ARM64
reComputer RK3576GNOME + GDM3 + XorgGNOME 43 / GDM3
reComputer RK3576RustDesk Linux ARM64 .deb1.2.3
Windows PCRustDesk Windows クライアント公式 Windows x86-64 インストーラー

RustDesk 1.2.3 は実機で検証したバージョンです。別のリリースを使う場合は、ログイン前のアクセスを改めて確認してください。

公式資料:

#インストール手順

#ステップ 1:RK3576 で ARM64 パッケージをダウンロードする

SSH で RK3576 に接続し、OS とアーキテクチャを確認します。

bash
cat /etc/os-release
dpkg --print-architecture

検証した端末は arm64 です。Windows 用や x86-64 用ではなく、Linux AArch64/ARM64 用の .deb を選びます。公式 1.2.3 リリースから rustdesk-1.2.3-aarch64.deb を入手するか、次を実行します。

bash
cd ~
wget https://github.com/rustdesk/rustdesk/releases/download/1.2.3/rustdesk-1.2.3-aarch64.deb

ダウンロードしたファイルを確認します。

bash
ls -lh rustdesk-1.2.3-aarch64.deb
dpkg-deb --info rustdesk-1.2.3-aarch64.deb

#ステップ 2:RustDesk をインストールしてシステムサービスを起動する

パッケージのあるディレクトリで実行します。

bash
sudo apt update
sudo apt install ./rustdesk-1.2.3-aarch64.deb

サービスを有効化して起動します。

bash
sudo systemctl enable --now rustdesk
systemctl status rustdesk --no-pager

正常な場合の状態表示:

text
Loaded: loaded (.../rustdesk.service; enabled; ...)
Active: active (running)

インストール済みバージョンも確認できます。

bash
dpkg -l | grep rustdesk

サービスが動作しているだけでは、ロック画面やログイン画面を操作できるとは限りません。以下の X11 設定と接続テストも行ってください。

#ステップ 3:GDM ログイン画面を X11 に設定する

RustDesk の Linux ドキュメントによると、ログアウトや再起動後のログイン画面にアクセスするには X11 のログイン画面が必要です。検証した Debian 12 環境では、GDM3 の設定ファイルは /etc/gdm3/daemon.conf です。

まず Xorg セッションがあることを確認します。

bash
ls /usr/share/xsessions/

検証したイメージには gnome-xorg.desktop がありました。このディレクトリがない場合は、X11 のグラフィカルセッションが利用可能かを確認するまで次の変更を行わないでください。

GDM の設定をバックアップして編集します。

bash
sudo cp /etc/gdm3/daemon.conf /etc/gdm3/daemon.conf.bak
sudo nano /etc/gdm3/daemon.conf

[daemon] セクションで、次の行を:

ini
#WaylandEnable=false

以下に変更します。

ini
WaylandEnable=false

設定を確認します。

bash
grep '^WaylandEnable' /etc/gdm3/daemon.conf

期待される出力:

text
WaylandEnable=false

端末を再起動します。

bash
sudo reboot

SSH で再接続し、セッション一覧を表示します。

bash
loginctl list-sessions

Debian-gdm の Session ID を探し、<SESSION_ID> を実際の番号に置き換えて実行します。

bash
loginctl show-session <SESSION_ID> -p Name -p Type -p Class -p State

検証環境では次のように表示されました。

text
Name=Debian-gdm
Type=x11
Class=greeter
State=active

これは GDM ログイン画面が X11 で動作していることを示します。Session ID は起動ごとに変わる場合があります。

デスクトップが起動しなくても SSH 接続が可能なら、sudo cp /etc/gdm3/daemon.conf.bak /etc/gdm3/daemon.conf で設定を戻して再起動できます。この手順は Xorg セッションが存在することを確認した Debian 12 環境に限ります。

#ステップ 4:RustDesk ID を取得し、固定パスワードを設定する

SSH から RK3576 のデバイス ID を取得します。

bash
sudo rustdesk --get-id

無人接続用に独立した強力な固定パスワードを設定します。デスクトップにログインできる場合は RustDesk の Settings → Security → Password → Use permanent password を使用します。SSH から設定する場合:

bash
read -rsp 'New RustDesk password: ' RD_PASSWORD; echo
sudo rustdesk --password "$RD_PASSWORD"
unset RD_PASSWORD

成功すると Done! と表示されます。この方法では平文のパスワードをシェル履歴に残しませんが、権限のあるローカルプロセスから実行中のコマンド引数を一時的に参照できる可能性があります。運用環境の認証情報管理ルールに従ってください。

実際のデバイス ID、固定パスワード、顧客アカウントを公開スクリーンショットに載せないでください。ID を隠し、強いパスワードを使用し、Linux のログインパスワードを再利用しないでください。

#ステップ 5:Windows クライアントをインストールして接続する

公式サイトまたはGitHub Releasesから Windows 版 RustDesk をダウンロードします。一般的な Intel/AMD 64 ビット PC では x86-64 (64-bit) → Windows → EXE を選びます。Windows ARM64 版は Windows on ARM の端末でのみ選択してください。

Windows クライアントで:

  1. 接続先 ID 欄に RK3576 の RustDesk ID を入力します。
  2. Connect を選びます。
  3. ステップ 4 の固定パスワードを入力します。
  4. 現地での承認なしに RK3576 のデスクトップを表示・操作できるか確認します。

#無人リモートアクセスを検証する

#1. ログイン中のデスクトップを操作する

RK3576 で GNOME にログインした状態にします。Windows 側から ID と固定パスワードで接続し、マウスとキーボードを操作できるか確認します。

#2. 画面ロック後に再接続する

RK3576 の画面をロックし、Windows 側の RustDesk 接続を切ります。同じ ID と固定パスワードで再接続し、現地承認なしでロック画面が表示され、Linux ユーザーのパスワードで解除できるか確認します。

#3. ログアウトまたは再起動後に GDM にアクセスする

GNOME メニューから Log Out を選ぶか、端末で次を実行します。

bash
sudo reboot

GDM ログイン画面に戻ったら、現地でログインしたり承認したりしないでください。Windows の RustDesk から ID と固定パスワードで接続し、GDM が表示され、Linux ユーザーのパスワードで遠隔ログインできるか確認します。

Log Out と Power Off は異なります。電源を切った端末では RustDesk は動作しません。このテストは OS、ネットワーク、RustDesk サービスが稼働している状態で行います。

検証した Debian 12 / X11 環境では、現地承認なしで GDM に接続し、遠隔ログインできました。

#よくある問題

1. SSH から rustdesk を実行すると Gtk-WARNING: cannot open display が表示される

SSH のテキストセッションにはグラフィカルディスプレイがありません。バックグラウンドサービスの障害とは限らないため、systemctl status rustdesk --no-pager で状態を確認し、ID 取得とパスワード設定にはコマンドラインオプションを使います。

2. GDM ログイン画面に接続できない

再起動後、Debian-gdm セッションの Type が x11 か確認します。Xwayland プロセスだけでは GDM が X11 で動作している証拠になりません。/etc/gdm3/daemon.conf の WaylandEnable=false を確認します。

3. RustDesk が端末をオフラインと表示する

RK3576 の電源とネットワークを確認します。SSH から rustdesk.service の状態とデバイス ID を調べます。再起動直後はネットワークとサービスの復帰を待ってください。

4. インストール時に Unsupported file ./rustdesk-...deb given on commandline と表示される

ls -lh と dpkg-deb --info で現在のディレクトリに完全なパッケージがあることを確認し、sudo apt install ./rustdesk-...deb を再実行します。

#まとめ

検証した Debian 12 / GDM X11 環境では、RustDesk により reComputer RK3576 のログイン中、画面ロック後、再起動後の GDM ログイン画面へ無人で接続できます。現場の Edge AI / AIoT デバイスを保守する際、モニターとキーボードを現地に用意する頻度を減らせます。

#参考資料

#技術サポートと製品に関する議論

Seeed Studio 製品をお選びいただきありがとうございます。関連ガイドとサポートは Seeed Studio Wiki をご覧ください。