Raspberry Pi開封から無線LAN経由でSSH接続して初期設定するまでのマイ・ウェイ（モニタ・キーボード無し）


いまさらですが手元のRaspberry Piが箱のなかで眠ってたので、ちょっといじってみようと思いました。箱から出したら、ケーブル類が一切なかったのでとりあえず用意できる最低限のものを用意して設定に入りました。

## 用意したもの

- Raspberry Pi B+
- microUSBケーブル（エネルギー供給）
- 有線LANケーブル（ネットワーク接続用）
- microSD 4G （なかったのでセブン-イレブンで買った。割高...）
- Macbook Air（セットアップ用）
- (途中で、無線接続するために[BUFFALO 無線LAN子機 コンパクトモデル 11n技術・11g/b対応 WLI-UC-GNM](http://www.amazon.co.jp/BUFFALO-%E7%84%A1%E7%B7%9ALAN%E5%AD%90%E6%A9%9F-%E3%82%B3%E3%83%B3%E3%83%91%E3%82%AF%E3%83%88%E3%83%A2%E3%83%87%E3%83%AB-11n%E6%8A%80%E8%A1%93%E3%83%BB11g-WLI-UC-GNM/dp/B003NSAMW2/ref=sr_1_1?s=computers&ie=UTF8&qid=1421772846&sr=1-1&keywords=WLI-UC-GNM)を利用しますが、初期セットアップでは不要です)

![raspi01.jpg](https://qiita-image-store.s3.amazonaws.com/0/24041/2407f5b8-3726-fc76-f8b9-92be9d942301.jpeg "raspi01.jpg")

早速、OSを入れていきます。

## OSイメージをダウンロード

Raspberry PiのダウンロードページからOSをダウンロードしてきます。ネットに解説の多いRasbianを入れることにしました。

- [Downloads | Raspberry Pi](http://www.raspberrypi.org/downloads/)

![raspi02.png](https://qiita-image-store.s3.amazonaws.com/0/24041/194d453e-d5d9-80ea-a58d-a717160398a7.png "raspi02.png")

と、思ったのですがダウンロードに失敗する。

![raspi03.png](https://qiita-image-store.s3.amazonaws.com/0/24041/36431515-23d4-9765-856f-86623e29d400.png "raspi03.png")

何度やっても失敗するので、検索して[北陸先端科学技術大学院大学](http://ftp.jaist.ac.jp/pub/raspberrypi/raspbian/)のミラーサイトからダウンロードすることにしました

- 参考: [Raspberry Piで遊ぼう [No.27:Raspbian wheezyの新しいバージョンが出ていました]：アシマネのドタバタ奮闘日記：So-netブログ](http://assimane.blog.so-net.ne.jp/2013-06-05)

## SDカードにOSイメージをセット

解説サイトはいくつかあったのですが、ちょっと迷ったのでここは公式の解説に従うことにします。

[Raspberry Pi Documentation](http://www.raspberrypi.org/documentation/installation/installing-images/mac.md)

まず、SDカードをMacに差し込み、`diskutil list`で接続しているディスクの情報を確認します。

```bash
$ diskutil list
```

僕の場合は、`/dev/disk4`でした。これをdiskutilでアンマウントします。

```bash
$ diskutil unmountDisk /dev/disk4
```

更に、イメージを書き込みます。

```bash
$ sudo dd bs=1m if=2014-09-09-wheezy-raspbian.img of=/dev/disk4
```

**dd** はファイルの変換とコピーを行うコマンドです。 **bs** は1度に指定したバイトのブロックを読み書きする。 **if** は入力ファイル、 **of** は出力ファイルです。コンソールに何も表示されない状態のまま、50分ほど待ちました。

```bash
3125+0 records in
3125+0 records out
3276800000 bytes transferred in 2817.832759 secs (1162880 bytes/sec)
```

書込みできました！

- [【Proton.jp】 Mac OS X の便利なコマンド](http://www.proton.jp/main/etc/command_osx.html)
- [Linuxコマンド集 - 【 dd 】 ファイルの変換とコピーを行う：ITpro](http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230741/)

## Rapsbianに接続する

早速、Raspberry piを有線ケーブルでルータにつなぎます。そして、ipを確認します。

### ルータから接続している機器のipを探す

RapsbianのIPアドレスを探したくてルータにアクセスしました。

BuffaloのAirStation WZR-HP-G301NH だと、管理画面トップページの「ユーティリティ機能」のところでDHCPで接続している機器を見つけることが出来ました。

![raspi04.png](https://qiita-image-store.s3.amazonaws.com/0/24041/aa468b60-ab59-9f24-b776-459be672b5c0.png "raspi04.png")

## sshでログイン

Rapsbianはsshの初期idが **pi** 、パスワードが **raspberry** と設定されているので、それで接続をしてみます。

```bash
$ ssh pi@192.168.3.10
pi@raspberrypi ~ $
```

出来ました！次は、無線LANでSSHを利用できるようにしていきます。

## 無線LANで接続するための準備

まず、有線LANに接続した状態でRaspberry Piを起動します。そして、無線LANアダプタを接続します。今回は、手頃な価格と利用者も多いことから、[BUFFALO 無線LAN子機 コンパクトモデル 11n技術・11g/b対応 WLI-UC-GNM](http://www.amazon.co.jp/BUFFALO-%E7%84%A1%E7%B7%9ALAN%E5%AD%90%E6%A9%9F-%E3%82%B3%E3%83%B3%E3%83%91%E3%82%AF%E3%83%88%E3%83%A2%E3%83%87%E3%83%AB-11n%E6%8A%80%E8%A1%93%E3%83%BB11g-WLI-UC-GNM/dp/B003NSAMW2/ref=sr_1_1?s=computers&ie=UTF8&qid=1421772846&sr=1-1&keywords=WLI-UC-GNM)にしました。

下記のコマンドを打ってusbに接続されていることを確認します。

``` bash
pi@raspberrypi ~ $ lsusb
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 0411:01a2 BUFFALO INC. (formerly MelCo., Inc.) WLI-UC-GNM Wireless LAN Adapter [Ralink RT8070]
```

Raspberry PiのWPAの設定をしていきます。下記のコマンドで設定情報を確認することができます。

```bash
pi@raspberrypi ~ $ wpa_passphrase [SSID] [PASSPHRASE]
network={
	ssid="[SSID]"
	#psk="[PASSPHRASE]"
	psk=c505ed74c79f4723e9809c6e167461d588d1e40c20f802590514b95de6ddcb71
}
```

更に、上記設定を`/etc/wpa_supplicant/wpa_supplicant.conf`というファイルに書き込みます。

```bash
pi@raspberrypi ~ $ sudo sh -c "wpa_passphrase [SSID] [PASSPHRASE] >> /etc/wpa_supplicant/wpa_supplicant.conf"
pi@raspberrypi ~ $ sudo cat /etc/wpa_supplicant/wpa_supplicant.conf
network={
	ssid="[SSID]"
	#psk="[PASSPHRASE]"
	psk=c505ed74c79f4723e9809c6e167461d588d1e40c20f802590514b95de6ddcb71
}
```

## 無線LAN接続

Raspberry Piの電源を切り、有線LANを外した状態で再度起動します。少し待つと、無線ルーターが新しいIPを割り振っていました。新しいIPを確認したら、そちらにSSH接続してみます。

IPアドレスの確認

```bash
$ ssh pi@xxx.xxx.xxx.xxx
pi@raspberrypi ~ $
```

接続できました〜。

全然、機能積んでないんですが、最小構成で電源ケーブル１つあればRaspberry Piに接続できるので気楽です！

![raspi05.jpg](https://qiita-image-store.s3.amazonaws.com/0/24041/b659c8af-91f4-bcde-49de-48421ebb44e6.jpeg "raspi05.jpg")

## Raspberry Piの初期設定

### raspi-configから初期設定する

```bash
pi@raspberrypi ~ $ raspi-config
```

![raspi06.png](https://qiita-image-store.s3.amazonaws.com/0/24041/b45688ce-6372-385c-8386-b2dfe6409ce6.png "raspi06.png")

- Expand Filesystemを選択する
- Internationalisation Options > Change Locale > ja_JP.UTF-8で日本語環境に。
- Internationalisation Options > Change Timezone > Asia > Tokyoで日本時間に。

下記のサイトを参考にしました。Expand Filesystemをやらないと、RasbianがSDメモリを十分に利用してくれないようですです。

- [RaspberryPi - Raspbian初期セットアップの備忘録 - Qiita](http://qiita.com/makoto_kw/items/393e098f214f81449c9f)

## パッケージの更新

とりあえず更新しておく。

```bash
$ sudo apt-get update
$ sudo apt-get upgrade
```

## vimの設定

普段はvimを使うことが多いので設定しておきます。

```bash
$ sudo apt-get install vim
$ sudo update-alternatives --set editor /usr/bin/vim.tiny
```

## hostnameの変更

下記コマンドでraspberrypiのところを好きな名前に変更する**raspi01**とか。管理しやすくするためです。

```bash
$ sudo vi /etc/hostname
$ sudo vi /etc/hosts
```

下記コマンドで再起動する。

```bash
$ sudo shutdown -r now
```

- [RaspberryPi - Raspbian初期セットアップの備忘録 - Qiita](http://qiita.com/makoto_kw/items/393e098f214f81449c9f)

## SSHのオートログイン設定

Rasbianの`.ssh/authorized_keys`に公開鍵を書き込んで置くと、秘密鍵を指定してSSH接続した時にパスワード認証が不要になります。これを便利に行う、**ssh-copy-id**というコマンドがあるので、それを利用して設定を行います。

```bash
$ brew install ssh-copy-id
$ ssh-copy-id -i ~/.ssh/id_rsa.pub pi@xxx.xxx.xxx.xxx
```

- [Homebrew — OS X用パッケージマネージャー](http://brew.sh/index_ja.html)
- [ssh-copy-idで外部サーバにSSHでアクセスできるようにする - Morizotter Blog](http://blog.morizotter.com/2015/01/11/mac-ssh-copy-id/)

## SSHの簡易接続設定

Mac側の`~/.ssh/config`に下記を追記します。先ほどの、オートログイン設定を利用するためにIdentityFileで秘密鍵を指定します。

```text:config
Host pi
  HostName [Raspberry piのIP]
  port 22
  User pi
  Protocol 2
  IdentityFile ~/.ssh/id_rsa
```

これで、以降は、`ssh pi`でパスワード認証も不要で接続できるようになります。

- [RaspberryPi - Raspberry Pi + 無線LAN セットアップ - Qiita](http://qiita.com/daicham/items/e24ce76f8815d339d070)

## DHCP環境でもhostnameでアクセスできるようにavahiをインストールする

avahiというツールを使って、DHCP環境でもホスト名でリモート接続ができるようにします。

```bash
$ sudo apt-get install avahi-daemon
```

host名の後に.localをつけてpingを打って設定ができているか確認します。

```bash
$ ping raspi01.local
PING raspi01.local (192.168.3.12) 56(84) bytes of data.
64 bytes from raspi01.local (192.168.3.12): icmp_req=1 ttl=64 time=0.183 ms
```

macから接続してみます。

```bash
$ ping raspi01.local
PING raspi01.local (192.168.3.12): 56 data bytes
64 bytes from 192.168.3.12: icmp_seq=0 ttl=64 time=55.977 ms
```

できました！configも下記のように変えると良いかも。

```text:config
Host raspi01.local
  HostName raspi01.local
  Port 22
  User pi
  Protocol 2
  IdentityFile ~/.ssh/id_rsa
```

## その他参考にしたサイト

- [RaspberryPi - Raspberry Pi Model B+セットアップ - Qiita](http://qiita.com/jh3rox/items/684ba1e746a6a3763b5c)
- [RaspberryPi - Raspberry PiにRaspbianをインストールする for Mac OSX - Qiita](http://qiita.com/ttyokoyama/items/7afe6404fd8d3e910d09)
- [RaspberryPi - Raspberry Pi + 無線LAN セットアップ - Qiita](http://qiita.com/daicham/items/e24ce76f8815d339d070)
- [Raspberry Pi の初期設定 | OpenRTM-aist](http://openrtm.org/openrtm/ja/node/266)
- [RaspberryPi - Raspbian初期セットアップの備忘録 - Qiita](http://qiita.com/makoto_kw/items/393e098f214f81449c9f)
- [RPi Advanced Setup - eLinux.org](http://elinux.org/RPi_Advanced_Setup)