emacs id-manager.el : Emacs/helmでパスワード一元管理!Emacs Lispからパスワードにアクセスする方法 | MELPA Emacs Lisp Elisp パッケージ インストール 設定 使い方
パッケージ名 | id-manager |
概要(原文) | id-password management |
リポジトリ | MELPA |
サイト | https://github.com/kiwanami/emacs-id-manager/ |
取得先 | https://github.com/kiwanami/emacs-id-manager |
Quelpa設定 | (quelpa '(id-manager :repo "kiwanami/emacs-id-manager" :fetcher github)) |
バージョン | 20150115.1619 |
関連記事 | package:id-manager package:helm package:passthword package:auth-source |
id-manager.el は、Emacsで各サービスのパスワードを管理するものです。
同じ目的のツールとしてブラウザの拡張に LastPass などがありますが、 クラウドに全パスワードを保存するということは、 パスワードを預けたサーバがクラックされると 全てのパスワードがダダ漏れになってしまうリスクがあります。
そこでローカルファイルにパスワードを暗号化して保存しておく方法もあります。
また、Emacs LispからID・パスワードにアクセスできるので、 パスワードを平文で設定する必要がなくなり、 セキュリティ が保たれます。
詳しくは開発者の記事を見てください。
http://d.hatena.ne.jp/kiwanami/20110221/1298293727
なお、最新版では anything.el ではなくて helm.el との連携になっています。
helmとともに楽々パスワード管理を楽しんでください。
このパッケージはmelpaにあるので パッケージの初期設定 を行ってください。
M-x package-refresh-contents M-x package-install id-manager
quelpa は一度入れておくと楽チンです。
id-manager.el は、Emacsで各サービスのパスワードを管理するものです。
同じ目的のツールとしてブラウザの拡張に LastPass などがありますが、 クラウドに全パスワードを保存するということは、 パスワードを預けたサーバがクラックされると 全てのパスワードがダダ漏れになってしまうリスクがあります。
そこでローカルファイルにパスワードを暗号化して保存しておく方法もあります。
また、Emacs LispからID・パスワードにアクセスできるので、 パスワードを平文で設定する必要がなくなり、 セキュリティ が保たれます。
詳しくは開発者の記事を見てください。
http://d.hatena.ne.jp/kiwanami/20110221/1298293727
なお、最新版では anything.el ではなくて helm.el との連携になっています。
helmとともに楽々パスワード管理を楽しんでください。
(quelpa '(id-manager :repo "kiwanami/emacs-id-manager" :fetcher github))
(require 'id-manager)
(setq epa-file-cache-passphrase-for-symmetric-encryption t)
(setq epa-file-select-keys 'silent)
$ wget http://rubikitch.com/f/140928130442.id-manager.el $ emacs -Q -f package-initialize -l 140928130442.id-manager.el
id-managerのデータベースは
(idm-load-db)
で得られます。
これはデータそのものではなくて関数オブジェクトになっています。
そこから特定のアカウント名のIDとパスワードを得るには、 この関数にシンボルgetとアカウント名を渡します。
返り値は構造体で、それぞれ
- idm-record-account-id
- idm-record-password
でアクセスできます。
つまり、 データベース関数オブジェクト→構造体→ID・パスワード の3段階になります。
たとえば .idm-db.gpg (をデコードした内容)に以下の行があるとき、
test1 testuser testpass 2012/11/27 test1
- アカウント名: test1
- ID: testuser
- Password: testpass
- メモ: test1
となります。
(let ((record (funcall (idm-load-db) 'get "test1")))
(idm-record-account-id record) ; => "testuser"
(idm-record-password record) ; => "testpass"
)
ちなみに今日、自分のクレジットカード使用履歴を見るための Ruby クローラー を作りました。
クレジットカードのサイトのパスワードはid-managerで管理されていて、 クローラーにIDとパスワードをEmacsから渡すための学びです。