それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

Macのsecurity コマンドでキーチェインからwifi のssid のパスワードを取り出す

macssid のパスワードをターミナルからコマンド経由で取り出す。

security コマンドを使うと、無線LANのパスワード(PSK)を平分で取得することができる。

WiFiのキーをSSIDごとに、キーチェインが保存しているので、それを指定して取り出す感じ

コマンド

security find-generic-password -D "AirPort network password"  -a $SSID -g

自分のキーチェインから取り出すのsudo はときに使わない、KeychainAgentからローカルのユーザー認証を聞かれるので自分のMacユーザー名とパスワードをいれる。

パスワードだけがほしい。

パスワードだけがほしいときは、 -w オプションにする

security find-generic-password -D "AirPort network password"  -a $SSID -w

実行例

takuya@Desktop$ security find-generic-password -D "AirPort network password"  -a  0000docomo -g
keychain: "/Library/Keychains/System.keychain"
version: 256
class: "genp"
attributes:
    0x00000007 <blob>="0000docomo"
    0x00000008 <blob>=<NULL>
    "acct"<blob>="0000docomo"
    "cdat"<timedate>=0x32303134303532353039333232305A00  "20140525093220Z\000"
    "crtr"<uint32>=<NULL>
    "cusi"<sint32>=<NULL>
    "desc"<blob>="AirPort network password"
    "gena"<blob>=<NULL>
    "icmt"<blob>=<NULL>
    "invi"<sint32>=<NULL>
    "mdat"<timedate>=0x32303134303532353039333232305A00  "20140525093220Z\000"
    "nega"<sint32>=<NULL>
    "prot"<blob>=<NULL>
    "scrp"<sint32>=<NULL>
    "svce"<blob>="AirPort"
    "type"<uint32>=<NULL>
password: "B35D084737"

ちなみに 0000docomo は日本全体で共通なので公開しても構わないものである。

実はオプションはほとんどなくてもいい。

明示的にSSIDを指定してわかりやすくして上記例を書いたけど。オプションは次のもので十分

sudo security find-generic-password  -a  0000docomo  -w

これで十分。

2018-07-18 追記

オプションについて記述を追加

参考資料

https://apple.stackexchange.com/questions/176119/how-to-access-the-wi-fi-password-through-terminal

関連記事

Macに保存時したWifiパスワードを表示するにはキーチェインアクセス - それマグで!