背景
僕はパスワード等の保存、共有にあたって、
Mac OS X標準搭載のキーチェーンアクセスの秘密メモ機能を使っています。
キーチェーン自体には共有機能が無いので1、
別の手段で.keychain
ファイルを共有しています。
パスワード管理サービス等は流出事故などが怖いので使っていません。
最小限として、Appleのキーチェーンファイルの暗号化実装だけを信頼しています。
しかし、この構成だと不便な点があります。
検索機能が貧弱です。
キーチェーンアクセスの右上に検索ボックスがあるんですが、
これがタイトルしか検索してくれないため、
タイトルは思い出せないけど関連するメールアドレスとか関係者のユーザ名はわかるとか、
そういった場合に取っ掛かりがありません。
また、マウス操作も面倒です。
エントリをダブルクリックしてウィンドウを開いた後、
「メモを表示」のチェックボックスをクリックしないといけません。
そこで、キーチェーンの秘密メモのタイトルと本文から、
一括で検索するコマンドラインツールを作りました。
設計と実装
キーチェーン関係の操作は、Mac OS Xがsecurity
というコマンドを提供してくれていています。
このコマンドのサブコマンドでいろいろできるんですが、
そのまま今回の要求に応えるものは無かったので、
これらを下請けにしたスクリプトをRubyで実装しました。
ツールのパッケージングについてはgemを使いました。
自前コマンドラインツールを適当なとこにインストールしてくれて、実行ファイルのパスも通るので楽で助かります。
完成品
以下に完成品を公開しました。
使用例
使用例です。
コマンド名がkcs
、第一引数がキーチェーン指定、第二引数が検索キーです。
第二引数は正規表現が書けます。
出力はいろいろ目隠ししました。
$ kcs pass dropbox
====
keychain: /Users/omochi/xxxx...xxxx/password.keychain
title: Dropbox
--
omochi.metaru@gmail.com
xxxxxxxxxx
二段階認証緊急コード
xxxx xxxx xxxx xxxx
-
iCloud同期機能はありますが、専用の1つのキーチェーンしか共有できないし、他の人との共有にも向いていません。 ↩