オープンソースのパスワード管理ソフトpassを導入したメモ

パスワードは適当な生成規則を作って運用していたのだが、サービスによっては長さが足りなかったり記号に対する指定が色々あったりで対応出来なくなってきたので、パスワード管理ソフトをついに導入する事にした。

無料のよりは有料の方が安心出来るかな、とか思いながら適当に探していたが、そういえばオープンソースにそういうのがあるに違いないな、と思ったらやはりあった。

pass というやつで、gpgでパスワードを暗号化してローカルで管理するCLIベースの管理ソフト。

使い方

上の本家から引用すると、まず保存しているパスワードは

zx2c4@laptop ~ $ pass
Password Store
├── Business
│   ├── some-silly-business-site.com
│   └── another-business-site.net
├── Email
│   ├── donenfeld.com
│   └── zx2c4.com
└── France
    ├── bank
    ├── freebox
    └── mobilephone

というように一覧出来る。

zx2c4@laptop ~ $ pass Email/zx2c4.com
sup3rh4x3rizmynam3

としてパスワードを表示したり、またはターミナルに印字するのがいやな場合は

zx2c4@laptop ~ $ pass -c Email/zx2c4.com
Copied Email/jason@zx2c4.com to clipboard. Will clear in 45 seconds.

というようにクリップボードに直接送る事もできる。

登録は

zx2c4@laptop ~ $ pass insert Business/cheese-whiz-factory

とする。自動生成もできて

zx2c4@laptop ~ $ pass generate Email/jasondonenfeld.com 15
The generated password to Email/jasondonenfeld.com is:
$(-QF&Q=IN2nFBx

という感じ。

詳しくは man page 参照。

インストール

僕はmacportsを使っているので

$ sudo port install pass

とした。homebrewの場合は

$ brew install pass

でいけるらしい。色々なlinuxディストリビューションでもパッケージになってるのでyumとかapt-getでインストール出来るようだ。

セットアップ

gpgについて

passはgpg2を暗号化に利用しているので、まずこいつをセットアップする必要がある。

まず鍵を作る:

$ gpg2 --gen-key

色々と聞かれるので答えて行く。
名前などを入力したあたりで

You selected this USER-ID:
    "nos "

ユーザーIDが表示されるのでメモっておく。

pass 初期化

暗号化に使うためさっきのgpgユーザーIDを指定する

$ pass init "nos "

お好みでgitもセットアップしておくとパスワードなどの変更の度にcommitされる:

$ pass git init
gpg-agent

gpgの鍵を作成した時のパスフレーズを毎回入れるのは面倒という時は、以下を ~/.bash_profile に書いておくと最初に一回打てばあとはgpg-agentが肩代わりしてくれる。

# from https://blog.kumina.nl/2009/11/gpg-agent-on-macosx/
if test -f $HOME/.gpg-agent-info && kill -0 `cut -d: -f 2 $HOME/.gpg-agent-info` 2>/dev/null; then
	GPG_AGENT_INFO=`cat $HOME/.gpg-agent-info`
	export GPG_AGENT_INFO
else
	eval `gpg-agent --daemon`
	echo $GPG_AGENT_INFO >$HOME/.gpg-agent-info
fi

その他

emacs用とかjailbreakenなiphone用のクライアント、Firefox用のpluginなんかもあるようだ*1