Pass
pass はコマンドライン用のシンプルなパスワードマネージャです。パスワードは単純なディレクトリツリー構造の gpg で暗号化されたファイルの中に保存されます。pass はシェルスクリプトであり gnupg, pwgen, tree, git などの既存のツールを利用します。
目次
インストール
基本的な使い方
- パスワードストアを初期化:
$ pass init <gpg-id or email>
- パスワードを挿入、わかりやすい階層名を指定する:
$ pass insert archlinux.org/wiki/username
- パスワードストアを確認:
$ pass
Password Store └── archlinux.org └── wiki └── username
- 新しいランダムなパスワードを生成、
<n>
は生成するパスワードの長さ (数字) に置き換えてください:
$ pass generate archlinux.org/wiki/username <n>
- パスワードを再取得、gpg のパスワードの入力を求められます:
$ pass archlinux.org/wiki/username
- Xorg を使っていて xclip をインストールしている場合、次のコマンドで取得したパスワードを一時的にクリップボードにコピーできます:
$ pass -c archlinux.org/wiki/username
pass への移行
pass のプロジェクトページ に他のプログラムからパスワードをインポートするためのスクリプトが複数記載されています。
Advanced usage
Environment variables can be used to alter where pass looks to do store and git operations via
PASSWORD_STORE_DIR=/path/to/store PASSWORD_STORE_GIT=/path/to/store
For more information on how this can be used to support multiple pass repositories see this link.
Multiple pass Contexts (e.g. Teaming)
One can use aliases to set up different pass contexts, which helps when collaborating with different teams. We've gotten this working in bash as follows:
Add aliases to your ~/.bashrc
:
alias passred="PASSWORD_STORE_DIR=~/.pass/red PASSWORD_STORE_GIT=~/.pass/red pass" alias passblue="PASSWORD_STORE_DIR=~/.pass/blue PASSWORD_STORE_GIT=~/.pass/blue pass"
Add these for bash-completion to your ~/.bash_completion
and make sure bash-completion is installed:
source /usr/share/bash-completion/completions/pass _passred(){ PASSWORD_STORE_DIR=~/.pass/red/ _pass } complete -o filenames -o nospace -F _passred passred _passblue(){ PASSWORD_STORE_DIR=~/.pass/blue/ _pass } complete -o filenames -o nospace -F _passblue passblue
Now you can initialize into ~/.pass/red
and ~/.pass/blue
and have two pass contexts with the passred
and passblue
aliases. You can generalize this further into as many contexts as you like.