トップ » SORACOM IoT DIY レシピ » Raspberry Piに遠隔から安全にアクセス

SORACOM レシピ:Raspberry Piに遠隔から安全にアクセス

概要

公開日: 2020年8月

レシピ難易度:★★☆☆☆

このレシピでは遠隔地のIoT機器(その例としてRaspberry Pi)に安全にリモートアクセスする仕組みを設定し、手元のPCからの遠隔での機器管理を実現します。

リモートアクセスの仕組みは SORACOM Napter を用います。この仕組みでは遠隔地のローカルネットワーク(LAN)を変更することなく、かつRaspberry Piのセキュリティを保ちながらのリモートアクセスが可能です。

本レシピのゴール

  • 遠隔地のIoT機器(Raspberry Pi)にSSH接続できるようになる

本レシピの所要想定時間と金額

  • 想定所要時間: 約1時間
  • 概算費用: 16,450円(設定用PC本体を除く)

※ 概算費用: ハードウェアや SORACOM を始めとした各種サービスの概ねの費用 (税や送料などの付帯費用や無料枠適用は考慮しないものとしています)

利用するソラコムサービス

サービス名概要
SORACOM AirIoT データ通信サービスです。
Raspberry Piと3G USBドングル AK-020でのセルラー通信を実現します。
SORACOM Napterオンデマンド・リモートアクセスサービスです。
遠隔地のSORACOM Airを搭載したデバイスにセキュアにリモートアクセスするために利用します

このコンテンツの進め方

上から内容を読み進みながら作業を行なっていきます。また左サイドに追従する目次からページ内の移動が可能です。

本コンテンツは現状のままで提供され、株式会社ソラコムは、誤りがないことの保証を含め、明示であると黙示であるとを問わず、本コンテンツの記載内容につき、いかなる種類の表明も保証も行いません。

掲載情報の閲覧及び利用により、利用者自身、もしくは第三者が被った損害に対して、直接的、間接的を問わず、株式会社ソラコムは責任を負いかねます。

本コンテンツを実践する中で用意された機器、利用されたサービスについてのご質問は、それぞれの機器やサービスの提供元にお問い合わせをお願いします。機器やサービスの仕様は、本コンテンツ作成当時のものです。

株式会社ソラコムが提供する機器・サービスについてのご質問は、 https://soracom.jp/contact/ をご確認の上、適切な窓口へのお問い合わせをお願いします。機器・サービスご利用前の導入相談は https://soracom.jp/contact/contactsales/ に、機器・サービスご利用開始後のサポートは、SORACOMユーザーコンソール内のサポートサイトから「リクエストを送信」(要ログイン)にてお問い合わせください。

Copyright (c) 2021 SORACOM, INC.

リモートアクセスの課題

リモートアクセスとはその名の通り「通信を用いて、遠隔から現場の装置を制御する」ことになります。このリモートアクセスの仕組みは大きく分けて以下のように大別され、それぞれ課題があります。

  • サーバ・クライアントに専用ソフトウェアをインストールする方式
  • リモートアクセスするサーバとそれに接続するクライアントの両方に追加のソフトウェアをインストールする必要がある
  • 外部サービスを経由する場合がある
  • VPNを経由する方式
  • VPNアプライアンスの管理コストが高い
  • VPNクライアントのライセンス管理とクライアントのキッティングが必要
  • VPNアプライアンスを常にインターネットに公開する必要がある

いずれの方式にもメリットとデメリットがあり、システム管理者には多くの負担が必要です。

SORACOM Napterとは?

SORACOM NapterはSORACOM IoT SIMに対してセキュアにリモートアクセスするサービスです。Napterを有効にすると期限付きの一時的なIPアドレスとポート番号が発行され、NapterはそこへのアクセスをSIMの指定ポート宛に転送します。サーバやクライアントへの追加のソフトウェアが不要なのでシンプルに導入でき、アクセス元IPアドレスの制限やアクセス監査ログ機能を備えるため企業での利用にも適しています。

SORACOM Airによるセルラー接続は遠隔地にインターネット接続回線がないケースにおいてもスピーディーに導入可能であり、遠隔メンテナンスのように不定期に利用するケースにおいては使った分だけ費用が発生する、SORACOM Airの従量課金モデルが非常に適しているとも言えます。

準備

本レシピを行うために、以下のものをご用意ください。

ハードウェア

品名数量価格購入先備考
Raspberry Pi 4 Model B / 2GB1約4,750円スイッチサイエンスRaspberry Pi 3 モデルB+や搭載メモリサイズが異なるものでも同様です
ラズパイ4に最適なACアダプター 5.1V/3.0A USB Type-Cコネクタ出力1約1,300円スイッチサイエンス同等の他製品でも構いません
SORACOMスターターキット(3G USBドングル AK-020同梱)1約5,700円スイッチサイエンスキットの中には以下のものが含まれています。(それぞれを個別に準備しても構いません)AK-020 (USB ドングル型モデム) x 1SORACOM 特定地域向け IoT SIM (plan-D マルチカット) x 1
microSD カード1約1,500円16GB以上推奨
microSD カードリーダー1約1,600円microSD にパソコンから書き込めるようにするために必要です。(例: エレコム カードリーダー MR3-C008BK)
有線 LAN (USB 型のアダプタ等形状問わず)1約1,600円パソコンと Raspberry Pi の通信に必要です。(例: BUFFALO 有線LANアダプター LUA4-U3-AGTE-NBK)
パソコン1インターネット接続が可能でWebサイトへの接続が自由であること。Google Chrome 等の最新ブラウザーが利用可能な事。有線 LAN が接続できること。
有線 LAN ケーブル1パソコンと Raspberry Pi の通信に必要です。

※ 金額はレシピ作成当時のもので、税抜き・送料別です。

その他必要なもの

必要なもの費用作成方法など
SORACOM アカウント無料※SORACOM アカウントの作成 (JP)

※ アカウント作成・維持自体の料金です。

SORACOMスターターキットが届いたら

SORACOMスターターキットに同梱されている SIM は、SORACOM に登録することで通信できるようになります。そのため、まずSORACOMスターターキット同梱されている SIM を SORACOM へ登録をしましょう。
※ すでに登録済み、もしくは登録済みの別の SIM を利用する場合は次へお進みください。

登録の方法は通販サイトやイベント等で入手した SIM を登録する (JP)をご覧ください。約5分で完了します。

登録が完了すると SIM 管理の一覧に表示されますので、確認ください。

SORACOM の便利な使い方: SIM の「名前」機能
SIM には「名前」を付けることができ、これで整理が可能です。特に複数の SIM (ボタン含む) をお持ちの際には、名前を付けることを強くお勧めいたします。
名前の付け方は SIM への名前の付け方をご覧ください。

Raspberry Pi OS を microSD に書き込む

Raspberry Piを動作させるためには、パソコンでOSイメージをmicroSDに書き込み、それをRaspberry Piにセットします。OSイメージのダウンロードと書き込みには、無償で利用できるソフトウェア Raspberry Pi Imager が便利です。

Raspberry Pi Imager をダウンロードします。

Raspberry Pi のダウンロードページを開き、操作するパソコンの OS に合った Raspberry Pi Imager をダウンロードします。

Raspberry Pi Imager をインストールします。

Windows の場合

ダウンロードした imager.exe を実行し、インストーラーの指示に従ってインストールを完了します。

インストール完了時の “Run Raspberry Pi Imager” はチェックを外した状態で[Finish]をクリックします。

macOS の場合

ダウンロードした imager.dmg を実行し、 Raspberry Pi Imager を Applications (アプリケーション) フォルダへコピーします。

インストールが完了したら、Finder のデバイスに表示されている Raspberry Pi Imager ディスクは不要となります。取出しをしてください。

Raspberry Pi Imager を利用して OS イメージをダウンロードし microSD カードに書き込む

注意点: STEP2 における Raspberry Pi Imager の起動の方法

Windows[スタートメニュー]> “Raspberry Pi Imager”
macOS[Finder]>[アプリケーション フォルダ]> “Raspberry Pi Imager”

macOS で初回起動時に「インターネットからダウンロードされたアプリケーションです」のダイアログが表示された場合は[OK]をクリックして進めてください。

標準のOSイメージを選択し、書き込みが完了したら microSD カードをカードリーダーから取り出してください。

microSD に追加の設定を書き込む / SSH サービス有効化と Wi-Fi の事前設定

書き込んだmicroSDの内容を編集し、 Raspberry Pi の起動時に Wi-Fi への接続と SSH サービスの待ち受けをするように設定を加えます。

ファイルの作成

以下二つのファイルをパソコンの任意のフォルダに作成します。テキストエディタで作成してください。

  • wpa_supplicant.conf
  • ssh

wpa_supplicant.conf

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
country=JP
update_config=1

network={
    ssid="YOUR_WIFI_AP_SSID1"
    psk="password1"
}

network={
    ssid="YOUR_WIFI_AP_SSID2"
    psk="password2"
}

このファイルは Raspberry Pi の起動時に接続する Wi-Fi のアクセスポイントをあらかじめ書いておくことができます。 YOUR_WIFI_AP_SSID1 や password1 を皆さんのご家庭もしくは職場の環境に合わせて書き換えてください。

network={... の ssid= には SSID を、 psk= にはパスフレーズを書きます。

network={...} は複数書くことができるので、家や職場を指定しておくと便利です。一つでも問題ありません。

特に職場の Wi-Fi を利用する際には、ネットワーク管理者の了解を取るようにしてください。また、Wi-Fi 接続時に Web ブラウザ等による認証が必要なネットワークは利用できません。

ssh

このファイルは「存在する事」が重要です。ファイルの中身は「空 (=0バイト)」にしてください。

ssh ファイルの保存時に拡張子がついてしまったら?
Windows の「メモ帳」等であるのが、ファイル保存時に自動的に拡張子(ファイル名の後に続く “.txt” 等の、ファイル種別を表す文字)がついてしまうことがあります。

Raspberry Pi OS は “ssh” もしくは “ssh.txt” というファイル名であれば ssh が有効化されるため問題なく利用できます。

二つのファイルを microSD の “boot” にコピーする

一度取り出した microSD を再度カードリーダーに取り付けます。boot と表示されたディスクが現れるのを確認してください。これが microSD の内容です。

その後、先ほどの 2 ファイル(wpa_supplicant.conf と ssh)を boot ディスクにコピーします。

※画面は macOSですが、Windows も同様です。

コピーが完了したらパソコンでディスクの取り外し操作を行った後、 microSD を取り出してください。

Raspberry Pi の起動と SSH ログイン、Raspberry Pi OS の最新化

Raspberry Pi の電源 ON

microSD を Raspberry Pi に取り付けます

少し残りますが奥までしっかりと刺さっていれば問題ありません。

有線 LAN で Raspberry Pi とパソコンを接続

このあとのRaspberry Piの初期設定のために、Raspberry Pi の有線 LAN ポートとパソコンの有線 LAN ポートをケーブルで接続します。(Napterによるリモートアクセス時には不要です)

Raspberry Pi に ACアダプタを接続

USB-CポートにACアダプタのケーブルを挿すと、電源 ON となります。(電源スイッチはありません)

Raspberry Pi の電源が ON になる前に、パソコンとの有線 LAN ケーブルの接続を確認してください。電源を ON にしてから有線 LAN ケーブルを接続しても、SSH リモートログインできない場合があります。

しばらく経過(約1~2分)すると macOS もしくは Windows 10 から Raspberry Pi へSSH接続出来るようになります。

SSH 接続の方法

Windows の場合

スタートメニューを右クリックして「コマンドプロンプト」を起動します。

コマンドプロンプトで以下のように入力して ssh コマンドを実行し、接続します。

ssh pi@raspberrypi.local
  • Are you sure you want to continue connecting (yes/no)? との問いには yes と入力します。
  • pi@raspberrypi.local's password: との問いには、初期パスワードを入力しEnterキーを押下します(入力したパスワードは画面に表示されないことに注意します)。初期パスワードは Raspberry Pi OS のドキュメント に記載されていますので、それを利用してログインしてください。

ssh: Could not resolve hostname raspberrypi.local と表示された場合
Windows 10の以前の場合(Windows 10 の最新版でない場合も同様)では、同エラーが発生し、接続ができない場合があります。(原因は mDNS という名前解決のシステムが必要です。iTunes をインストールすることで解決します。 Windows 用 Apple iTunes をインストール

macOS の場合

[Finder]>[アプリケーション]>[ユーティリティ]>[ターミナル]を起動します。

Spotlight (検索) から “Terminal.app” を探して起動する方法もあります。

Terminal.app で以下のように入力して ssh コマンドを実行し、接続します。

ssh pi@raspberrypi.local
  • Are you sure you want to continue connecting (yes/no)? との問いには yes と入力します。
  • pi@raspberrypi.local's password: との問いには、初期パスワードを入力しEnterキーを押下します(入力したパスワードは画面に表示されないことに注意します)。初期パスワードは Raspberry Pi OS のドキュメント に記載されていますので、それを利用してログインしてください。

Raspberry Pi OS の最新化

以降は Windows、macOS 共通の作業です。

Raspberry Pi へ SSH 接続でログインしたあと、Raspberry Pi 側で以下を実行します。

sudo timedatectl set-timezone Asia/Tokyo
sudo apt update && sudo apt upgrade -y
sudo systemctl reboot

最後の1行で再起動となります。しばらく待ったら、PCからRaspberry Piに再度SSH接続します。

SORACOM Air によるインターネット接続

Rapsberry PiからSORACOM Airによるインターネット接続を設定します。PCからコマンドを実行するために、Raspberry Pi へ SSH 接続していることを確認してください。以降は、特に断りを入れない場合は Raspberry Pi 側でコマンドを実行します。

setup_air.sh の実行

USB ドングル型モデムで SORACOM Air によるインターネット接続の一連の設定を自動化する setup_air.sh をSORACOMユーザーサイトで公開しているので、これをダウンロードし、実行します。

Raspberry Pi へ SSH 接続をし、以下2つのコマンドを順に実行してください。

curl -O https://soracom-files.s3.amazonaws.com/setup_air.sh
sudo bash setup_air.sh

USB ドングル型モデム (AK-020) に SIM を取り付け、Raspberry Pi に接続する

以下の図を参考に AK-020 に SIM カードを取り付け、Raspberry Piにセットしてください。

Raspberry Pi の USB ポートはどこでも構いませんが、有線LANポートと干渉しないようにしましょう。

接続を確認する

USB ドングル型モデムの LED を見ながら接続状態になったのを見計らって、以下を実行します。

ping -c 4 pong.soracom.io

この時、期待される出力は以下の通りです。

PING pong.soracom.io (100.127.100.127) 56(84) bytes of data.
64 bytes from 100.127.100.127 (100.127.100.127): icmp_seq=1 ttl=64 time=75.6 ms
64 bytes from 100.127.100.127 (100.127.100.127): icmp_seq=2 ttl=64 time=58.8 ms
64 bytes from 100.127.100.127 (100.127.100.127): icmp_seq=3 ttl=64 time=55.4 ms
64 bytes from 100.127.100.127 (100.127.100.127): icmp_seq=4 ttl=64 time=43.4 ms

これで Raspberry Pi から SORACOM Air を通じてインターネット接続が可能になりました。Raspberry Piから有線LANケーブルを外しておきましょう。

SORACOM Napterでのリモートアクセス

いよいよ、PCから遠隔地を想定したRaspberry Piへのリモートアクセスを試します。

SORACOM Napterでのリモート接続設定

この作業は「リモートアクセス元のPC」で行います。

SORACOM Napterのご利用には費用がかかります。詳細はWebサイト(https://soracom.jp/services/napter/price/)をご参照ください。

SORACOM ユーザーコンソールにログインし、SIMにチェックを入れて[操作] – [オンデマンドリモートアクセス] をクリックします。

ダイアログの [デバイス側ポート番号] が「22」になっていることを確認し、「OK」ボタンをクリックします。

これでNapterが有効になり、アクセスするための一時的なホスト名/IPアドレスとポート番号が発行されました。[デバイスにアクセスするには(例)] の [SSH] にあるコマンドラインの文字列をコピーし、テキストエディタに貼り付けます。

コマンドラインのうち、ユーザー名をRaspberry Piのユーザー名に書き換えましょう。

ssh -p XXXXX user@XX-XX-XX-XX.napter.soracom.io

ssh -p XXXXX pi@XX-XX-XX-XX.napter.soracom.io

コマンドプロンプトやTerminal.appにテキストエディタのコマンドライン文字列をコピー&ペーストし、Napter経由でもSSH接続できることを確認します。

ssh -p XXXXX pi@XX-XX-XX-XX.napter.soracom.io
  • Are you sure you want to continue connecting (yes/no)? との問いには yes と入力します。
  • pi@XX-XX-XX-XX.napter.soracom.io's password: との問いには、初期パスワードを入力しEnterキーを押下します(入力したパスワードは画面に表示されないことに注意します)。初期パスワードは Raspberry Pi OS のドキュメント に記載されていますので、それを利用してログインしてください。

あとかたづけと注意事項

本レシピでは費用がかかるサービスを利用しています。
本項をよく読み、必要な操作や解除作業を行うようにして、想定外の費用が掛からないようにしてください。

費用について

ここで記載している金額は全て税別、送料別となります。

SORACOM プラットフォームの利用料金

サービス/機能料金
SORACOM Air (plan-D)基本料: 10円/日
通信料: 0.2円~/MB
(今回の利用であれば 100MB 以内で収まる範囲)
SORACOM Napter300円/月

※ 費用詳細はリンク先をご確認ください。

無料利用枠について
SORACOM サービスでは一部サービスにおいて無料枠が設定されています。たとえば SORACOM Air for セルラーであればアカウント毎で30円/月の通信分や、SORACOM Napter であれば1SIM分などです。料金詳細に「無料利用枠」として掲載されていますので、ご確認ください。

SORACOM Napter 設定の削除

SORACOM Napter の設定はアクセス可能時間の経過後自動で削除されます。

明示的に削除する手順はSORACOMユーザーサイトをご覧ください。

Raspberry Piの電源 OFF の方法
電源を OFF にする場合は SSH 接続した後、Raspberry Pi 側で以下を実行します。
sudo systemctl poweroff
この後 1分ほど経過して緑色 LED の点滅が止んだら microUSB ケーブルを抜きます。これで OFF にできます。

次のステップ

本レシピでは、Raspberry Piへの遠隔アクセスをSORACOM AirとSORACOM Napterで実現しました。NapterはSSH接続の他にも任意のTCP通信を扱うことができますので、SORACOMユーザーサイトの手順で紹介している様々なリモートアクセス通信にチャレンジしてみてください。

SORACOM IoT DIY レシピ »

ご質問などはこちらよりお問い合わせください。

pagetop