Raspberry PiにSSH接続したいけど、外出中のときや、ルーターやハブが目の前にないときに、Zeroconfという仕組みを利用してRaspberry PiのIPアドレスを調べたりせずにさくっとSSH接続できる方法を紹介します。
動作環境および準備
リモート(Raspberry Pi)側
- Raspberry Pi 3 Model B
- Raspbian Jessie Lite 2016-09-23
- イメージをMicroSDに書き込んだ直後の状態
- Raspbian Jessie Lite 2016-11-25
- このバージョンからSSHがデフォルトでは無効になりました。
- イメージをMicroSDに書き込んだ後、MicroSDのルートディレクトリに
ssh
という名前で空のファイルを作成しておく必要があります。 - macOSであれば、
touch
コマンドを用いてtouch /Volumes/boot/ssh
といった要領で空のファイルssh
を作成できます
- Raspbian Jessie Lite 2016-09-23
ホスト側
-
MacBook Pro (Retina, 13-inch, Early 2015)
- macOS Sierra
- 外付けLANアダプター
- BUFFALO LUA3-U2-ATX (https://www.amazon.co.jp/dp/B002IT5ZPG)
- USB2.0 to Ethernet
- 実売価格:1,089円程度
- ドライバーインストール不要で認識した
- Apple Thunderbolt - ギガビットEthernetアダプタ
- BUFFALO LUA3-U2-ATX (https://www.amazon.co.jp/dp/B002IT5ZPG)
-
Let's note S10
- Windows 10
- SSH接続にTera Term (http://forest.watch.impress.co.jp/library/software/utf8teraterm/)
-
iTunesまたはBonjour Print Servicesがインストールされていること
- Bonjourというサービスがインストールされ、Zeroconfが利用できるようになります。IPアドレスを調べなくてもSSH接続ができます。
- 標準搭載のLANポート
- Windows 10
Mac | Windows PC |
---|---|
SSH接続してみる
Raspberry PiにRaspbianが入っているMicroSDを入れて、電源を入れます。OSが起動するまで1分ほど待ちます。
macOS
$ ssh pi@raspberrypi.local
パスワードを聞かれるので、 raspberry
と入力してreturnキーを押します。
pi@raspberrypi.local's password:
繋がるはずです。
pi@raspberrypi:~ $
うまく繋がらない場合は、以前接続した際の設定が残っている可能性があるので、known_hostsの設定削除を行ってください。
$ ssh-keygen -R raspberrypi.local
Windows
今回はTera TermでSSH接続してみます。
初めての方は、タスクマネージャー(Ctrl+Shift+Esc)でBonjour Serviceが実行中になっているか確認しましょう。
Tera Termを起動し、ホストに raspberrypi.local
と入力します。
ユーザー名に pi
、パスフレーズに raspberry
と入力しEnterキーを押します。
繋がるはずです。
pi@raspberrypi:~ $
ブリッジ接続もしてみる
Mac or Windows PCでSSH接続ができた後、Raspberry Pi側で apt-get
や wget
といったインターネットを必要とする操作をするときに、Mac or Windows PCが接続している回線をRaspberry Pi側でも利用できるようにします。
例として、iPhoneをUSBでMac or Windows PCと接続してテザリングするケースを紹介します。
macOS
システム環境設定の「共有」を開き、左側のサービスの一覧にある「インターネット共有」を選択します。
共有する接続経路を「iPhone USB」 とし、LUA3-U2-ATXを接続した場合は、ポート「AX88772」、Thunderbolt - ギガビットEthernetアダプタを接続した場合は、ポート「Thunderbolt Ethernet」にチェックを入れます。
左側のサービスの一覧にある、インターネット共有にチェックを入れ、インターネット共有機能を開始します。
再びSSH接続すると、pingで応答が帰ってくるはずです(control+Cで終了)
pi@raspberrypi:~ $ ping www.google.co.jp
Windows
スタートメニューで「ネットワーク接続の表示」と検索して、ネットワーク接続の画面を開きます。
iPhoneとRaspberry Piを接続しているアダプターの両方を選択し、右クリックをしてブリッジ接続をクリックします。
再びTera TermなどでSSH接続すると、pingで応答が帰ってくるはずです(Ctrl+Cで終了)
pi@raspberrypi:~ $ ping www.google.co.jp
ホスト名を変えてみる
/etc/hostname
の中身を見てみます。
pi@raspberrypi:~ $ cat /etc/hostname
初期設定では、内容が raspberrypi
となっているはずです。
例として、 my-rpi
に変更してみます。
Raspbianの設定ツールを起動します。
pi@raspberrypi:~ $ sudo raspi-config
7 Advanced Options → A2 Hostname でホスト名を変更できます。
pi@raspberrypi:~ $ sudo reboot
で再起動すると、 raspberrypi.local
の代わりに my-rpi.local
でSSH接続できるようになるはずです。
pi@my-rpi:~ $