普段、自宅や自社オフィスのネットワークで使っているRaspberry Piを外に持っていって使おうと思うと、インターネットに繋がらなかったり、つながってもIPアドレスが変わってしまいSSHで接続できないことがあります。

ディスプレイやキーボードを接続せずにRaspberry Piを他のネットワークに接続し、新しいネットワーク環境でSSHログインする方法を説明します。

事前準備

自宅でラズパイのMacアドレスをメモしておいてください。

Macではターミナル、WindowsではbashやPowerShellを使ってください。

やり方1

Raspberry Piに画面とキーボードを接続して起動。ターミナルを開いてifconfigコマンドを実行。

$ ifconfig
eth0      Link encap:イーサネット  ハードウェアアドレス b8:27:eb:b4:f6:54 
          inet6アドレス: fe80::d378:f847:ff1e:bfa9/64 範囲:リンク
          UP BROADCAST MULTICAST  MTU:1500  メトリック:1
....(省略)...
wlan0     Link encap:イーサネット  ハードウェアアドレス b8:27:eb:e1:a3:01 
          inetアドレス:192.168.1.8 ブロードキャスト:192.168.1.255  マスク:255.255.255.0
          inet6アドレス: fe80::1781:aab8:af11:e5f8/64 範囲:リンク
....(省略)...

有線LANでインターネットに接続している場合はeth0、Wi-Fiで接続している人はwlan0の欄に表示されるb8:27:e1から始まるMacアドレスがあるのでこれをメモしておいてください。

注意点:

WindowsのbashやPower Shellを使っている場合は、Macアドレスがコロン(:)区切りではなく、ハイフン(-)区切りになっているかもしれません。

やり方2

別のやり方としてネットワークをスキャンしてRaspberry Piを見つける方法です。

$ arp -a
192.168.1.1 (192.168.1.1) at xx:xx:xx:xx:xx:xx on en0 ifscope [ethernet]
google-home (192.168.1.2) at 48:d6:d5:xx:xx:xx on en0 ifscope [ethernet]
tomoyukimba (192.168.1.6) at d0:81:7a:xx:xx:xx on en0 ifscope permanent [ethernet]
raspberrypi (192.168.1.8) at b8:27:eb:e1:a3:1 on en0 ifscope [ethernet] <-- これがMacアドレス
? (224.0.0.251) at 1:0:5e:0:xx:xx on en0 ifscope permanent [ethernet]
? (239.255.255.250) at 1:0:5e:7f:xx:xx on en0 ifscope permanent [ethernet]

同じくb8:27:e1から始まるMacアドレスがあるのでこれをメモしておいてください。ただし、ネットワークにつながっているラズパイが2台以上あるとどっちがどちらか分からなくなりますので、1台だけネットワークに接続するようにしてください。

注意点:

先程、ifconfigで調べたときはb8:27:eb:e1:a3:01でしたが、arpコマンドで調べるとb8:27:eb:e1:a3:1になっています。使用しているPCがMacかWindowsかLinuxかによって表示が若干異なりますのでお気をつけください。

以上で事前準備終わりです。

新しいネットワークに接続する

有線LANの場合

LANケーブルを挿してください。

以上。

無線LAN(Wi-Fi)の場合

Raspberry Pi 3 Model BRaspberry Pi Zero W/WHの場合はWi-Fi接続も出来ますが、接続したことがないSSIDに接続するには再度設定が必要です。ラズパイにつなぐ画面もキーボードもない場合はwpa_supplicant.confというファイルを作成して設定します。

手順1

PCでwpa_supplicant.confという名前のテキストファイルを作成。

中身に以下の内容を書き込んで保存。

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
  ssid="ABC-1234-56789X"
  psk="パスワード"
}

中級者向けの説明:生パスワードをテキストファイルに書いておくのは感心できませんが、今回はセミナーなどでパスワードが印刷された紙が堂々と会場に貼られているという想定です。

手順2

SDカードをPCに接続
boot直下に先ほど作成したwpa_supplicant.confファイルを配置します(下図参照)

手順3

SDカードをラズパイに挿して起動すると自動的にWi-Fiに接続されます。

新しいネットワークからラズパイを探し出してSSH接続する

まず、新しい環境に行ったら上記の方法でネットワークに接続してください。

接続されたら以下のコマンドで自分のRaspberryPiのMacアドレスを検索してIPアドレスを調べます。

$ arp -a | grep "b8:27:eb:e1:a3:1" 
raspberrypi (192.168.1.8) at b8:27:eb:e1:a3:1 on en0 ifscope [ethernet]

IPアドレスが「192.168.1.8」であることがわかりました。

これでSSHログインが出来ます。

$ ssh pi@192.168.1.8

以上!

RaspberryPiの勉強会やもくもく会などに自分のラズパイを持っていき、ネットワーク環境が変わって困る方もこれで安心ですね。

XSHELLでは定期的にラズパイを使ったIoTの勉強会を開催していますので、興味ある方はconnpassのグループをフォローしてください。

https://isaaxug.connpass.com/


Tomoyuki Sugita

Chief Product Officer of XSHELL Inc.

Leave a Reply

Your email address will not be published. Required fields are marked *