パスワード管理ツール id-manager.el 更新

id-manager.elを更新しました。あと、ちゃんと紹介記事を書いてなかったのでまじめに書きました。

何か

世の中にあふれるIDとパスワードを管理するものです。

例によって類似品がたくさんあります。有名なものを列挙すると以下のような感じでしょうか。

自分が欲しかった要件は以下のようです。これはそのまま id-manager.el の売りでもあります。

  • OSに依存しない
    • →よくPCが壊れたり、OSを変えたりするので
  • 暗号化して手元に置きたい
    • →オフラインのことが多いので
  • 即起動
  • 高速な検索

インストール方法

必要なもの
  • GnuPG
    • 暗号化ツール
  • EasyPG
    • Emacs上ののGnuPGインタフェース
    • Emacs23から標準添付
  • anything.el
    • 無くても動きますが、入れておきましょう。

LinuxMac だと GnuPG のインストールは簡単だと思います。
Windows の場合は EmacsGnuPG のビルド環境によって違うようなのですが、 cygwinGnuPG を使う場合は fakecygpty が必要です。

id-manager.el の実行前に、GnuPGとEasyPGの動作チェックをしてみてください。やり方は test.gpg のようなファイル名で適当な内容のファイルをEmacsで作成して保存します。その際暗号化の方法(共通鍵で良いと思いますのでそのまま「OK」を押す)とパスワードが聞かれます。



EasyPGで暗号化のテスト

うまくいけば内容が自動的に暗号化されて保存されます。保存されたファイルを見ると暗号化されていて内容は見れません。Emacsで暗号化されたファイルを開くと、パスワードを聞かれて自動的に復号化されます。

ここで問題があるようなら id-manager.el が動きません。

本体のインストールと設定

id-manager.el は、auto-install.el で以下の式を評価して入れるか、ダウンロードしてload-pathの場所に置いてください。

;; auto-installを使う場合
(auto-install-from-url "https://github.com/kiwanami/emacs-id-manager/raw/master/id-manager.el")

ダウンロード

以下、設定例です。

(autoload 'id-manager "id-manager" nil t)
(global-set-key (kbd "M-7") 'id-manager)                     ; キーバインド
(setenv "GPG_AGENT_INFO" nil)                                ; minibufferでパスワードを入力する場合

パスワードを毎回入れるのが面倒な人は以下の行を追加すると入力されたパスワードをキャッシュします。この場合、安全性が落ちますので気をつけてください。

(setq epa-file-cache-passphrase-for-symmetric-encryption t)  ; パスワードのキャッシュ

EasyPGではなくて alpaca.el を使う方法もあります。詳しくはソース先頭のコメントを参照してください。

機能や簡単な使い方など

起動、メイン画面

M-x id-manager とやるか、上の設定例では M-7 で起動します。



id-manager.elをAnythingで起動したところ(つまらないテストデータですみません...)

Anythingの一覧の中には、レコード(一つのID-パスワードの情報)の追加・一覧表示の管理用のアクションと、登録されているレコードの一覧が出てきます。



素早く絞り込み

ここで、目的のレコードを絞り込んでエンター(デフォルトのAnythingアクション)すると、クリップボードにパスワードがコピーされます。これが通常の使い方で、パスワードが必要なときにさっと開いてぱっと選ぶ感じです。

レコードへのアクションにはコピーの他に、ミニバッファにID-パスワードの表示、レコードの編集があります。

内容追加、編集画面

管理アクションからレコードの追加や、Anythingでレコードを選んで編集アクションを選ぶと、以下のような入力画面になります。



ダイアログで内容を入力

入力できる内容は以下のようです。

  • Account Name : アカウントの名前
    • 例:「Googleアカウント」とか、マシン名とか
    • 空白や日本語を含んでも良いですが、一意である必要があります。
  • Account ID : アカウントのID
    • 例:ID名とかメールアドレスとか「root」とか
    • 空白でもかまいません
  • Password : 秘密にしておきたいパスワード
    • 自分で入力しても良いですし、[Generate]ボタンで適当に生成します。
  • Memo : 備考やメモなど
一覧画面

Anythingが無い場合や、メイン画面からレコード一覧を選んだ場合に表示される画面です。



一覧の表示、ソートやレコードの追加・修正・削除など。

キーバインドは以下のような感じです。

移動
n,p,j,k 上下
全体
a,+ 新規レコード追加
u,r リロード
レコード操作
e,m 編集
d,- 削除
Enter パスワードコピー
表示
S パスワード表示のトグル
T 更新日時でソート
N アカウント名でソート
I アカウントのIDでソート
M メモの内容でソート
終了
q 変更があれば保存して終了
Q 変更せずに終了

インポート、エクスポート

IDとパスワードはデフォルトでは「~/.idm-db.gpg」に保存されます。
ファイル形式は以下のようなシンプルなタブ区切りです。

(name) ^t (ID) ^t (password) ^t (Update date "YYYY/MM/DD") [^t (memo)]

手動で復号化すればExcelなどのツールでメンテナンスが出来ますし、既にたくさんIDを持っている人はインポートも簡単です。

更新内容

以前のものとの差について簡単にまとめると以下のようです。

  • 編集画面がダイアログになった
  • 一覧画面のソートの動きを改善した


最近はOpenIDやOAuthなどでアカウントや認証をまとめる動きになってきてはいるのですが、まだまだパスワードが必要な場面は多いです。