世界を動かす技術を、日本語で。

Pass: Unixパスワードマネージャー

概要

pass は、Unix哲学に基づいた シンプルなパスワード管理ツール。 パスワードは gpgで暗号化されたファイル として保存。 標準的な コマンドライン操作やgit連携 に対応。 拡張性・柔軟性が高く、他ツールからの移行も容易。 多くの クライアントや拡張機能 がコミュニティにより提供。

pass の概要と特徴

  • Unix哲学 に基づく、シンプルなパスワード管理ツール
  • 各パスワードは gpgで暗号化されたファイル として保存
  • ファイル名は ウェブサイトやリソース名 で管理
  • ディレクトリ階層 で整理可能、標準コマンドで操作
  • パスワードは ~/.password-store に保存
  • 追加、編集、生成、取得 などのコマンドを提供
  • クリップボードへの一時コピーgitによるバージョン管理 に対応
  • bash, zsh, fish の補完機能
  • 多様なクライアントやGUI、拡張機能 がコミュニティで開発

基本的な使い方

  • 既存のパスワード一覧表示
    • passコマンドで 全パスワードの階層表示
  • パスワードの表示
    • pass パス名該当パスワードを表示
  • クリップボードへのコピー
    • pass -c パス名一時的にクリップボードへコピー
  • パスワードの追加
    • pass insert パス名新規パスワードを登録
    • 複数行対応--multilineまたは-m
  • パスワードの編集
    • pass edit パス名デフォルトエディタで編集
  • パスワードの自動生成
    • pass generate パス名 長さランダム生成
    • 記号なし生成--no-symbolsまたは-n
    • クリップボード直送--clipまたは-c
  • パスワードの削除
    • pass rm パス名削除操作

git連携

  • パスワードストアを gitリポジトリとして初期化 可能
  • 各操作ごとに 自動でgitコミット
  • pass git pushpass git pull同期管理

初期設定

  • ストアの初期化
    • pass init "GPG鍵ID"GPG鍵を指定して初期化
    • 複数GPG鍵やチーム利用 にも対応(-pでフォルダごとに鍵指定可能)
  • gitリポジトリの初期化
    • pass git initストア内にgitリポジトリ作成

インストール方法

  • Ubuntu / Debiansudo apt-get install pass
  • Fedora / RHELsudo yum install pass
  • openSUSEsudo zypper in password-store
  • Gentooemerge -av pass
  • Arch Linuxpacman -S pass
  • Macintosh (Homebrew)brew install pass
  • FreeBSDpkg install password-store
  • ソースコードgit clone https://git.zx2c4.com/password-store

データ構成と柔軟性

  • 特定のデータ構造を強制しない フラットテキストファイル形式
  • 複数行機能 (--multiline/-m)でパスワード以外の情報も保存可能
    • 例:1行目にパスワード、2行目以降にURLや秘密の質問等
    • クリップボードコピーは1行目のみ
  • フォルダ分けやファイル分割 による柔軟な整理も可能
  • ユーザーの好みに合わせた運用 が可能

拡張機能(Extensions)

  • /usr/lib/password-store/extensions~/.password-store/.extensions/に設置
  • 環境変数PASSWORD_STORE_ENABLE_EXTENSIONS で有効化
  • 主要な拡張例
    • pass-tomb:Tombによるストア管理
    • pass-update:パスワード更新フロー
    • pass-import:他マネージャからのインポート
    • pass-otp:ワンタイムパスワード対応

対応クライアント・ツール

  • passmenu :dmenuスクリプト
  • qtpass :クロスプラットフォームGUI
  • Android-Password-Store :Androidアプリ
  • passforios, pass-ios :iOSアプリ
  • passff, browserpass :Firefox/Chromeプラグイン
  • Pass4Win :Windowsクライアント
  • gopass, upass :Go製GUIやインタラクティブUI
  • Alfred連携 :複数のAlfred統合スクリプト
  • emacs, XMonad対応 :各種エディタ・ウィンドウマネージャ統合

他ツールからの移行

  • 1Password, Keepass, Lastpass, Firefox 等からのインポートスクリプト多数
    • 例:1password2pass.rb, keepassx2pass.py, lastpass2pass.rb, firefox_decrypt など

ライセンス・開発体制

  • 作者 :Jason A. Donenfeld (zx2c4.com)
  • ライセンス :GPLv2+
  • 活発な開発・貢献方法
    • メーリングリスト参加、gitパッチ送付
    • IRC (#pass on Libera.Chat)で議論可能

Hackerたちの意見

GPGの代わりにageを使って暗号化するなら、これが役立つよ: https://github.com/FiloSottile/passage

他にもageを使ったパスのようなパスワードマネージャーがあるよ。一つの開発者が比較表を作ってる: https://gitlab.com/retirement-home/seniorpw/-/tree/02dc02d1e.... (開示:表の中のpagoは俺のやつ。)

CLI好きには面白いけど、一般の人にはデスクトップのKeepassXCとAndroidのKeepassDX(パスワードDBを自分のマシンに保存して、Wireguard経由でリモートアクセスする方)がいい解決策だと思う。

wg経由でリモートアクセスする理由は何かある?syncthingじゃなくて?Androidでwgを使ってどうやってアクセスしてるのかも気になるな。

keepassxc.cliも忘れないで!これを使うとプログラム的に秘密を設定したり取得したりできるよ。インターフェースはかなりユーザーフレンドリーで、ちょっと難解だけど。暗号化された秘密のバンドルを作る必要があった時に使った(長いパスワードで一時的にAPIキーをアンロックするため)。単一のファイルとそれをアンロックするための「Makefile」を生成できたし、適切な環境にキーを渡すこともできた。最初にGNUのpassを使おうとしたけど、残念ながらgnupgの管理が必要で、これはデフォルトオプションが悪いことで有名な地雷原で、シェルに統合されるべきだと仮定してユーザープロファイルディレクトリに保存するから(呼び出す場所に対して相対的なディレクトリを使わない)。これが私のファイル一つのワークフローを危険にさらしたから、普及しているにもかかわらず、諦めざるを得なかった。

デスクトップ用には「passmenu」スクリプトがあって、これをDE/WMのキーにバインドできるよ。

「ノーマルな人たち」?すべては相対的だと思う。俺は1Passwordを使ってて、あとはうまくいくことを願ってる。

ちょっと宣伝。ターミナルでKeepassアーカイブを管理するツール[1]を作ったんだけど、ここで読んでることのいくつかを解決できるかも。TUIがあって、他のコマンドにパイプすることもできるよ。[1]: https://github.com/shikaan/keydex

Keepassでは解決できない唯一のケースは、直接接続せずに2台の別々のマシンでパスワードを作成して、後でそれを統合することだね。

Keepassには、あまり話題にならないけど、複数のボールトを持てて、それらを同時に開いて検索できるという非常に評価されていない機能があるよ(少なくとも、君が言ってた2つのアプリはそれをサポートしてる)。ほとんどのパスワードマネージャーは1つのボールトに基づいていて、すべてのパスワードを最大限のセキュリティが必要だと扱わなきゃいけない問題がある。私の場合、たぶん70%のパスワードは重要じゃないサイト用で、他の誰かがその認証情報を手に入れても大した問題じゃないと思う。でも、そのサイトにログインするたびに長いマスターパスワードを入力しなきゃいけない。Keepassを使えば、その70%を別のボールトに入れて、タイプが早い短いマスターパスワードを使えるから、完全に安全かどうかわからないコンピュータでそのボールトを開くときもあまり心配しなくて済むんだ。

これを試してみようかな。今まではkeepassでローカルファイルだけ使ってたんだ。俺の場合、SynologyのNASにファイルを保存してて、2.5インチのSSDが2つ入った2ベイのやつを使ってる。メモや音楽、その他のものも入れてるし、wgもね。

KeepassXCを使いたいんだけど、妻とクレデンシャルを共有するのが簡単じゃないんだ。専用のボールトを使うこともできるけど、既存のクレデンシャルを共有するためにコピペしなきゃいけないからね。だから今のところ、Vaultwardenに落ち着いてて、意外と安定してるよ。

Hacker Newsで議論の続きを見る