IoTサービス連携 (Armadillo-IoT G4)


sshdを有効化して、デバイスコントロール機能・デバイスリンク機能を使用する

IIJ IoTサービスでは、LTE回線を経由してssh等のプロトコルを使用してデバイスを遠隔で操作することができる デバイスコントロール機能 や、リモートアクセス機能である デバイスリンク機能 を提供しています。

しかし、Armadillo-IoT G4 はデフォルトでは sshd が有効になっていません。

今回は Armadillo-IoT G4 の sshd を有効化します。

  1. Armadilloのターミナルにrootでログインします。
  2. 以下コマンドを入力し、sshdを有効化します。

    rc-update add sshd
    persist_file /etc/runlevels/default/sshd
  3. os を再起動します。

    reboot

これでsshdが動作するようになりました。
デバイスコントロール機能・デバイスリンク機能を使用して、sshでの接続等をすることが可能となります。
デバイスコントロールの設定については、以下のページを参照してください。

デバイスリンクの設定については、以下のページを参照してください。

shellinaboxコンテナをインストールして、デバイスコントロール機能からアクセスする

Armadillo Base OS で任意のアプリケーションを動作させる場合は、一般的にはコンテナを利用する必要があります。Armadillo Base OS はコンテナ管理ツールとして Podman が利用可能です。

今回は Podman を利用して、Shell In a Box(ブラウザからターミナルを操作するためのミドルウェア )を導入してみます。

Armadillo Base OS でのコンテナの運用方法や Podman の利用方法の詳細については、以下URLの Armadillo-IoT G4 のマニュアル をご参照ください。

https://armadillo.atmark-techno.com/armadillo-iot-g4

  1. Armadilloのターミナルにrootでログインします。
  2. 以下コマンドを実行し、docker hub に公開されている shellinabox のコンテナイメージを取得します。

    podman pull docker.io/sspreitzer/shellinabox:latest
  3. コンテナイメージが取得できたことを確認します。

    podman images
  4. 取得した shellinabox のコンテナを手動で起動してみます。以下の通りコマンドを実行します。

    podman run \
      -p 4200:4200 \                           # コンテナの4200番ポートを親の4200番ポートに割り当てる
      -e SIAB_PASSWORD=WI4R895yv \             # guestユーザのパスワードを WI4R895yv にする
      -e SIAB_SUDO=true \                      # sudo を有効にする
      -e SIAB_SSL=false \                      # ssl接続を無効にする
      docker.io/sspreitzer/shellinabox:latest  # 起動するコンテナを指定する

    以下の通り起動されます。

    Preparing container ..
    Starting container ..
    ...(中略)...
    [server] Listening on port 4200...
  5. 有線LANで接続している場合は、同じネットワークに接続されている他のPCからブラウザで http://(armadilloのIPアドレス):4200/ を開いてみると、ブラウザ上にターミナルの画面が表示されます。
    user: guest,  password: WI4R895yv (4.で設定したパスワード) でログインできます。

  6. 動作確認が終わったら、Armadilloのターミナル(コンテナ起動状態のもの)から Ctrl + C を押し、コンテナを終了させます。

  7. OS起動時にコンテナを自動起動させるように設定を行います。
    以下コマンドを実行します。

    vi /etc/atmark/containers/shellinabox.conf

    以下内容を入力し、ファイルを保存します。 (※ファイル中のパスワードは適当なものに変更してください)

    set_image docker.io/sspreitzer/shellinabox:latest
    add_ports 4200:4200
    add_args -e SIAB_PASSWORD=hogepiyo -e SIAB_SUDO=true -e SIAB_SSL=false

    ファイル保存後、ファイルを永続化します。

    persist_file /etc/atmark/containers/shellinabox.conf
  8. OS を再起動します。

    reboot
  9. 再起動後、他のPCのブラウザから  http://(armadilloのIPアドレス):4200/ を開き、ブラウザ上にターミナル画面が表示されること(=コンテナが自動起動していること)を確認します。


これで、shellinabox のコンテナが起動するようになりました。

IoTサービスのデバイスコントロールを利用することで、LTE回線経由で shellinabox の画面を操作することが可能です。
デバイスコントロールの設定については、以下のページを参照してください。