Skip to content

Latest commit

 

History

History
152 lines (117 loc) · 7.82 KB

1409281239.id-manager.org

File metadata and controls

152 lines (117 loc) · 7.82 KB

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とともに楽々パスワード管理を楽しんでください。

id-manager インストール

このパッケージは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に保存したID・パスワードにLispでアクセスする

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から渡すための学びです。