自宅でのリモートワークが中心ですが、契約しているコワーキングスペースを利用しながら都内で移動して仕事をすることもあります。
カフェや公共施設の Wi-Fi は、キャプティブポータルや固定の SSID・パスワードが一般的ですが、契約しているコワーキングスペースでは月に 1 回 SSID のパスワードが更新されます。
そのたびに macOS の Wi-Fi 設定を削除してパスワードを再登録するのが面倒でした。定期的にパスワードが変わる環境はレアケースかもしれませんが、この作業を簡単にするためにスクリプトを作ってみました。
Table of Contents
セッション中だけ更新するスクリプト
今回のスクリプトは macOS Sequoia で動作確認しています。要件は次のとおりです。
- OS: macOS Sequoia
- 方法: ターミナルの bash スクリプトで更新できるようにする
- インターフェース: Ethernet アダプタの接続順が変わる場合もあるため、Wi-Fi インターフェース名は自動検出する
MacBook Air 上で動かしている Ollama と VS Code を使い、プロンプトを書いてスクリプトを生成しました。
1 2 3 4 5 6 7 8 | #!/bin/bash WLAN=$(networksetup -listallhardwareports | awk '/Wi-Fi/{getline; print $2}') SSID="Coworking-WiFi" PASSWORD="$1" networksetup -setairportnetwork $WLAN "$SSID" "$PASSWORD" |
SSID はほぼ変わらないのでスクリプトに直接埋め込んでいます(上記の SSID はサンプルです)。
このファイルを update-wifi.sh として保存し、実行権限を付与しておきます。毎月のパスワード更新通知が届いたら、次のようにコマンドを実行するだけです。
1 | $ ~/bin/update-wifi.sh 1234567890 |
これでその接続セッション中は新しいパスワードで Wi-Fi に接続できます。
キーチェーンも更新して再接続をスムーズに
上記のスクリプトはセッション中のみ有効です。最近コワーキングスペースを使う頻度が増えてきたため、macOS のキーチェーンに保存されているパスワードも合わせて更新できるようにしました。
キーチェーンの更新には security コマンドを使います。
1 2 3 4 5 6 | security add-generic-password ¥ -D "AirPort network password" ¥ -a "<SSID名>" ¥ -s "<SSID名>" ¥ -w "<新しいパスワード>" ¥ -U |
オプションの説明は次のとおりです。
| オプション | 内容 |
|---|---|
-a / -s | SSID 名(完全一致が必要) |
-w | 新しいパスワード |
-U | 既存エントリを上書き更新 |
注意: 実行時に管理者パスワードの入力を求められます。
このコマンドを実行しておくと、次回コワーキングスペースに接続する際にパスワードを再入力せずに自動接続できます。翌月のパスワード更新時にも、同じコマンドを新しいパスワードで実行するだけで OK です。
スクリプトは、次のような簡単なものです。
こちらは upgrade-wifi.sh として、同じように保存して使っています。
1 2 3 4 5 6 7 8 9 10 11 | #!/bin/bash SSID="Coworking-WiFi" PASSWORD="$1" security add-generic-password ¥ -D "AirPort network password" ¥ -a "$SSID" ¥ -s "$SSID" ¥ -w "$PASSWORD" ¥ -U |
これで、月1回 SSID のパスワードを更新すれば、すぐにコワーキングスペースの無線LANに接続できるようになりました。