Raspberry Piを調べるにあたり、「Wi-Fiの設定」で検索しラズパイダに訪れる人が多いようです。Raspberry Piに限ったことではありませんが、ネットワークの設定は環境に依ります。先ずは使っているルーターのWi-Fi設定が分からないと、設定も難しいですね。
Raspberry Pi で使うことを前提に、Wi-Fi設定の参考になるような情報で分からない点が解消できればとまとめてみました。
Wi-Fi環境を知る
先ずは使うWi-Fiの環境が、どの暗号化方式なのか知ることが大事になります。
- WPA
- WPA2(WPA2-PSK(AES))
- WPA2-TKIP
- WPA3
ゲーム機などで用いられている古い規格のWEPもあります。ただWEPで繋ぐのは危険です。少なくてもWPA2-PSK(AES)か、最新のWPA3-SAEで接続しましょう。
自宅のWi-Fiであれば、ルーターにはログインできると思います。

メーカーにも依りますが、そこにある無線接続(Wi-Fi接続)の項目を確認しておきましょう。

どのような接続方式と暗号化方式でしたか?
- SSID名
- 暗号化方式は?
- 暗号化キー(いわゆるパスワード)
これらをご存じの前提で、Raspberry Piでも設定していきます。
Wi-Fiの情報はテキスト情報で保存されている
Raspberry Pi のWi-Fiの設定は、他のLinux OS 同様に、テキストファイルである.confファイルに記録されています。この設定ファイルを直接変更してもWi-Fiの設定は変更が可能です。(wpa_supplicant.conf)
場所は/etc/以下の決まった場所にあります。
/etc/wpa_supplicant/wpa_supplicant.conf
Raspberry Pi OSの場合も、このファイルを意識することなく、最初の起動時にウィザード形式で答えて行く設定が可能になっています。

他のOSのようにタスクバーから設定も可能です。
特にバージョンがbullseyeになってから、タスクバーでの表示も分かりやすくなりました。

マウスクリックとキーボードでパスワードで設定はできます。
内容は、先程のwpa_supplicant.confに記載されています。
起動前にコピーしておく
Raspberry Pi OSが便利な1つに、このwpa_supplicant.confをこれから起動させるmicroSDカードのルート直下にコピーしてあれば、起動時に読み取り上書きしてくれます。
そういう処理が行われているため、事前に用意しておけば、ウィザードでもWi-Fi設定はスキップできますし、最初からWi-Fiに繋がった状態でRaspberry Pi OSを起動させることができるのです。
これは何も初回起動時に限りません。例えWi-Fiが設定済みであっても、やはり起動時に該当のconfファイルを上書きしてくれます。
一旦、microSDカードを抜く必要にはなりますが、別のPCでmicroSDカード直下へコピーすれば、次にRaspberry Piの電源を入れた時には、その設定に変わっているというわけです。
同じWi-Fi内で使うことが前提ならば、常にコピーしてからRaspberry Piを起動させれば、Wi-Fiの設定を意識することはありません。
このことも以前の記事でご紹介してあります。皆さん、既にご存じかも知れませんが、はじめてという人はぜひ覚えておいて損はない便利な仕組みですよ。
wpa_supplicant.confの中身
wpa_supplicant.confの中身は、ご自宅のWi-Fi環境によって記述内容が異なります。
条件は、Wi-FiのアクセスポイントであるSSIDをご存じの点と、暗号化方式が何か分かっている点です。パスフレーズ(≒パスワード)は言うまでもありません。
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
最低限必要な情報は以下です。
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP
network={
ssid="Wi-FiのアクセスポイントSSID名"
psk="ここに平文のパスワード"
key_mgmt=WPA-PSK
}
用語の説明
WPA-PSKのWPAはWi-Fi Protected Accessの略で、PSKは、Pre-Shared Keyの略で日本語だと事前共有鍵となります。
WPAにはいくつかあって、WPA、WPA2、WPA3です。しかもPSK(AES)とも記載されるので、余計に分かりづらいです。ちなみにAESはAdvanced Encryption Standardの略です。
ルーターによってはWPA2-PSK(AES)/WPA-PSK(AES)と表記されるように、暗号化の強度としては同じです。
これまで一般的には、自宅で使う規模のルーターはWPA2-Personalに準じているものが多く、WPA2-PSK(AES)の暗号化方式が多いでしょう。
この場合、パスフレーズは8文字から63文字で設定します。(または16進数で64桁)
この暗号化方式を記述している箇所が、key_mgmt=になります。
新しいWPA3
最近のルーターでは、WPA3を選べるのが多いでしょう。WPA3ではPSKではなく、SAEという仕組みが使われています。説明は省きますが、WPA2-PSKより強固なセキュリティになります。
WPA3はルーターが対応している必要があり、尚且つルーターの設定でWPA3を選んでいる必要があります。
WPA3だけの場合(WPA3-SAE)
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP
network={
ssid="Wi-FiのアクセスポイントSSID名"
sae_password="平文のパスワード"
key_mgmt=SAE
ieee80211w=2
}
WPA3が2018年からの規格ですから、2021年では11acに対応していたり、廉価版以外ルーターだとWPA3に対応していると思います。

WPA2とWPA3の混合
WPA2-PSKとWPA3-SAEを混在させる設定の場合は、また記述が異なります。
混在とは、WPA3-SAEで暗号化できない場合は、WPA2-PSKにしますよ、という意味です。(※WPA-PSK/WPA2-PSKの場合も同じですが、記述は変わりません)
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP
network={
ssid="Wi-FiのアクセスポイントSSID名"
psk="ここに平文のパスワード"
key_mgmt=WPA-PSK-SHA256
ieee80211w=1
}
2つのアクセスポイントを予め設定する場合(認証方式がWPA2-PSKの場合)
自宅で使用しているRaspberry Piを別の場所で使用する際、使用する場所でアクセスポイントを設定するのですが、自分がそこに行けず、且つ設定できる人が居ないようなケースに遭遇した時に有効な手立てです。
そんなややこしい状態になる人は、そう多くはないでしょう。事前に使用する環境のSSIDとパスワード、認証方式が分からないと設定はできませんからね。
設定したラズパイを実家の両親へ送る、といったことを想定しています。もう1つのネットワークを同じように記述します。
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP
network={
ssid="Wi-FiのアクセスポイントSSID名"
psk="ここに平文のパスワード"
key_mgmt=WPA-PSK
priority=2
}
network={
ssid="もう1つのWi-FiのアクセスポイントSSID名"
psk="ここに平文のパスワード"
key_mgmt=WPA-PSK
priority=1
}
本来は優先させる方に、priority=を設定するのですが、他所で使うことを想定すれば自ずとどちらかの電波しか拾いませんから必要ありません。priority=の指定が無いと、電波が強い方に自動的に繋がります。スマホと一緒です。
priority=には数字を指定します。大きい数字の方が優先されます。2つしかないなら2と1など。
Wi-Fiのステータスをチェックするコマンド
現在のWi-Fiのステータスを確認するコマンドです。
自分の環境を調べてみてください。
wpa_cli -i wlan0 status
以下のように出力されました。
bssid=XX:XX:XX:XX:XX:XX
freq=5180
ssid=SSIDの名前
id=0
mode=station
pairwise_cipher=CCMP
group_cipher=CCMP
key_mgmt=WPA2-PSK
wpa_state=COMPLETED
ip_address=192.168.XX.XX
p2p_device_address=XX:XX:XX:XX:XX:XX
address=XX:XX:XX:XX:XX:XX
uuid=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX
ieee80211ac=1
WPA2-PSKで、暗号化のアルゴリズムがCCMP、ac対応ということが分かりました。※アドレス欄はXXで伏せてます。
パスフレーズを暗号化する
平文のパスフレーズを暗号化することで、素早く見つけることができるようです。接続されるまで時間がかからない。セキュリティ的にも意味はあります。(それほどでもないけど)
あと一手間をやっておいた方が良いでしょう。
wpa_passphrase 接続するSSID 平文のパスワード
すると、ターミナルの画面に暗号化されたパスワードが表示されます。
network={
ssid="Wi-FiのアクセスポイントSSID名"
#psk="ここに平文のパスワード"
psk=暗号化されたパスワード
}
この中の暗号化された部分をwpa_supplicant.confに追記またはコピーします。平文のパスワードはコメントアウト(#)します。
confファイルへコマンドで上書きコピーしたいところですが、現在接続しているWi-Fiなので、root権限が無いとできません。sudoでもダメです。かといってRaspberry Pi OSはrootは設定していませんから、ここは面倒でもconfファイルを開いて書き換えましょう。
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
自宅の設定を知る
ネットワークの設定というのは、細かくたくさんの項目があり、用語が略語ということも手伝って大変分かりにくいです。細かくはもっと設定項目はあります。この記事で触れていないだけで、色んなパターンもあるでしょう。
ルーターのWi-Fi設定にも依るので、すべてはご紹介できません。
最新のWPA3であっても脆弱性が露呈してハッキングの恐れがありました。イタチごっこです。少なくてもパスフレーズ(≒パスワード)は、13文字以上などの長さであれば理論的に総当たりし難いと言われています。
このようにWi-Fi設定はややこしい場合もあるため、ラズパイダでも相変わらずWi-Fi設定の記事がとても読まれている状態です。
もしかしたら、最近のWPA3-SAEが普及してきて検索されているのかな?と考えて新たにご紹介しました。
何かのご参考にしてください。
