ルータに穴をあけることなく、インターネットからシェルが使えるとのこと、Raspberry Pi OS LiteでRaspberry Pi Connectをインストールして使用してみました。
Raspberry Pi OS Liteでも、Raspberry Pi3でもRaspberry Pi4でも動きます。Raspberry Pi5はこのブログで使用しているので試していませんが大丈夫だと思います。
ただ大量のパッケージがインストールされることと併せて、リモートシェルのサービスをインストールしリモートシェル用のポートが空くので、本番の機能が動くサーバに利用は控えた方が良いかと思います。
この記事の中では、Connectと書かれていればRaspberry Pi Connectの意味です。ご注意ください。
Raspberry Pi IDの取得
下記のサイトでIDを作成します。

表示された画面に入力します。
- ①メールアドレス
- ②パスワード
- ③愛称(なんでも良いです。)
- ④チェック(リンクを読んでください)
- ⑤クリックするとお題が出ます。
下の画面を参照

「私は人間です」のチェックボックスをクリックするとお題が出題され正解するとチェックボックスにチェックが付きます。お題はいろいろパターンがあるのでご注意ください。

ここでContinueのボタンを押下すると、

上記の画面が表示され入力のメールアドレスにメールが送信されます。

届いたメールの「Verify email」のボタンを押下すると

確認完了の画面が表示されて、IDの取得が終わりました。
Raspberry Pi Connectのインストール
比較的簡単にインストールができます。でも、大量のパッケージが必要となるみたいなので、下記準備が必須です。
準備
$ sudo apt update && sudo apt full-upgrade -y
Connectのインストール
Raspberry Pi OS Lite向けのインストールを行います。公式HPのここを参照しました。
$ sudo apt install rpi-connect-lite
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages were automatically installed and are no longer required:
appstream gui-updater libaacs0 libaml0 libappstream4 libatkmm-1.6-1v5
libavfilter8 libavformat59 libbdplus0 libblas3 libbluray2 libcairomm-1.0-1v5
libcamera0.3 libcjson1 libconfig++9v5 libdbus-glib-1-2 libdbusmenu-glib4
libdbusmenu-gtk3-4 libevdev2 libffado2 libfm-data libfm-extra4
libfm-gtk-data libfm-gtk4 libfm-modules libfm4 libgck-1-0 libgcr-base-3-1
libgfortran5 libglib2.0-bin libglibmm-2.4-1v5 libgtk-layer-shell0
libgtkmm-3.0-1v5 libinput-bin libinput10 liblapack3 liblc3-0 libldacbt-abr2
libmbedcrypto7 libmenu-cache-bin libmenu-cache3 libmtdev1 libmysofa1
libneatvnc0 libnma-common libnma0 libnorm1 libnotify4 libpackagekit-glib2-18
libpangomm-1.4-1v5 libpgm-5.3-0 libpipewire-0.3-0 libpipewire-0.3-common
libpipewire-0.3-modules libplacebo208 libpocketsphinx3 libpostproc56
librabbitmq4 librist4 librubberband2 libsecret-1-0 libsecret-common
libsigc++-2.0-0v5 libspa-0.2-bluetooth libspa-0.2-modules libsphinxbase3
libssh-gcrypt-4 libstemmer0d libswscale6 libturbojpeg0 libudfread0
libvidstab1.1 libwacom-common libwacom9 libwireplumber-0.4-0 libxml++2.6-2v5
libxmlb2 libzimg2 libzmq5 lp-connection-editor lxmenu-data packagekit
packagekit-tools pipewire pipewire-bin pipewire-pulse pocketsphinx-en-us
wayvnc wf-panel-pi wfplug-bluetooth wfplug-connect wfplug-cpu wfplug-cputemp
wfplug-ejecter wfplug-gpu wfplug-menu wfplug-netman wfplug-power
wfplug-squeek wfplug-updater wfplug-volumepulse wireplumber
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
rpi-connect
The following NEW packages will be installed:
rpi-connect-lite
0 upgraded, 1 newly installed, 1 to remove and 0 not upgraded.
Need to get 7,640 kB of archives.
After this operation, 2,048 B disk space will be freed.
Do you want to continue? [Y/n] y
Get:1 http://archive.raspberrypi.com/debian bookworm/main arm64 rpi-connect-lite arm64 2.4.0 [7,640 kB]
Fetched 7,640 kB in 3s (2,290 kB/s)
(Reading database ... 95183 files and directories currently installed.)
Removing rpi-connect (2.4.0) ...
Selecting previously unselected package rpi-connect-lite.
(Reading database ... 95156 files and directories currently installed.)
Preparing to unpack .../rpi-connect-lite_2.4.0_arm64.deb ...
Unpacking rpi-connect-lite (2.4.0) ...
Setting up rpi-connect-lite (2.4.0) ...
For Raspberry Pi OS Lite, enable user lingering for your user:
loginctl enable-linger
This allows users who are not logged in to run long-running services.
Start Raspberry Pi Connect by running:
rpi-connect on
For information on getting started with Raspberry Pi Connect, please see the official documentation:
https://rptl.io/rpi-connect
rpi-connect.service is a disabled or a static unit not running, not starting it.
Processing triggers for man-db (2.11.2-2) ...
Raspberry Piの登録とリモートログイン
自身のRaspberry Piを、先程登録したRaspberry Pi IDに登録をします。
まず、下記のサイトでログインします。
下記の画面が表示されます。

その状態で、Raspberry Pi Connect(Lite用)を起動します。
$ rpi-connect on
✓ Raspberry Pi Connect started
ログイン済みのサイトにRaspberry Piを登録するため下記のコマンドを入力して
$ rpi-connect signin
Complete sign in by visiting https://connect.raspberrypi.com/verify/xxxx-xxxx
⢿ Waiting for a response…
赤字のURLをPCのブラウザに貼り付けて表示すると下記の画面が表示されます。URLの中のxxxx-xxxxは、表示が毎回変わりますのでご注意ください。

上記の画面で、①のRasbperry Piの名前を入力します。名前は自由に付けられますが、念のため半角で入力しましょう。

登録が完了すると上記画面が表示されます。画面のview all devicesをクリックすると

が表示され、入力したRaspberry Piの名前と、画面の右端に「Connect」のボタンが表示されます。
これで「Connect」のボタンを押すと

上記画面が表示され、接続されると

と、Raspberry Piのコンソールが表示されます。終わるときは、exitを入力してください。
自動起動の設定
Connect は、root としてではなく、ユーザーレベルのサービスとして実行されます。その結果、接続は、ユーザー アカウントが現在デバイスにログインしている場合にのみ機能します。
自動ログインを無効にして再起動すると、デバイスがアクセスできなくなる可能性があります。
デバイスにログインしていないときでも Connect を実行し続けるためには、
$ loginctl enable-linger
を入力してユーザーの残留を有効にします。
さっ、これでRaspberry Piを再起動しても大丈夫です。
$ sudo reboot
Raspberry Piの再起動後下記のサイトで
確認をすると

登録デバイスの横に、「Connect」のボタンが表示されるようになりました。
このボタンを押してリモートシェルを起動してください。
最後に
意外と困ったのが、デバイスの一覧のURLがわかりにくかったことです。再度下記に記載しておきます。
それと、Connectのボタンを押してつながると、いきなりリモートシェルにログインした状態から始まるので、id.raspberrypi.comのログインIDおよびパスワードは、絶対にばれないような長ーーーーく、複雑なものを設定しないといけません。
本格的に運用を始めるには、まだまだ検討が必要だとは思います。