Pass:Unix Password Store

pass

LinuxのCLIパスワード管理ツール「pass」の概要と基本操作

passとは何か

pass(Unix Password Store)は、Linuxを中心としたUnix系環境で利用されるCLIベースのパスワード管理ツールです。「1パスワード=1ファイル」という非常にシンプルな思想を採用しており、パスワードや秘密情報をGPGで暗号化したテキストファイルとして管理します。GUIに依存せず、ターミナル操作・スクリプト・gitとの親和性が非常に高いため、エンジニアやサーバー管理者を中心に長年支持されているツールです。

passの基本思想

  • すべてはテキスト: パスワードは暗号化されたテキストファイルとして保存
  • ディレクトリ=分類: フォルダ構成でサービスや用途を整理
  • GPGによる暗号化: 公開鍵暗号を使い、安全に保管
  • gitで履歴管理: 変更履歴・バックアップ・同期が容易

passで管理できる情報

  • Webサービスやシステムのログインパスワード
  • SSH鍵のパスフレーズ
  • APIキー・トークン
  • データベース接続情報
  • メモ・補足情報(ユーザー名、URL、注意事項など)

passの特徴

  • 完全CLI操作: すべての操作をコマンドで完結でき、リモート環境やサーバー上でも扱いやすい
  • gitとの高い親和性: パスワードストア全体をgitリポジトリとして管理可能
  • 透明性の高い構造: 独自データベースを使わず、ファイル構造がそのまま中身になる
  • 軽量・依存が少ない: 必要なのはGPGと基本的なUnixツールのみ

passが向いている利用シーン

  • ターミナル中心で作業するエンジニア・管理者
  • dotfilesや設定ファイルをgit管理している環境
  • SSH・APIキーなどを安全に扱いたい場合
  • スクリプトや自動化処理と連携したい場合

passの初期化:pass init

passを使い始めるには、まずどのGPG鍵で暗号化するかを指定して初期化します。この操作により、パスワードストア(通常は ~/.password-store)が作成されます。

$ pass init your@email.address
  • 指定したGPG公開鍵で、以降のすべてのパスワードが暗号化される
  • 複数鍵を指定すれば、複数人・複数端末での復号も可能
  • 内部的には .gpg-id ファイルが作成される

パスワードの登録:pass insert

新しいパスワードや秘密情報を登録するには pass insert を使用します。登録時には対話的にパスワードを入力します。

$ pass insert service/example
  • service/example がそのままファイルパスになる
  • 入力内容はGPGで暗号化されて保存される
  • ディレクトリを使って自由に分類できる
  • 複数行の情報(ユーザー名、URL、メモなど)もそのままテキストとして保存可能

パスワードの表示:pass show

登録済みのパスワードを表示するには pass show を使います。GPG鍵が有効な環境でのみ、復号された内容が表示されます。

$ pass show service/example
  • 標準出力にパスワードやメモが表示される
  • スクリプトや他コマンドとパイプで連携しやすい
  • クリップボードコピー用の拡張コマンドも存在

passのディレクトリ構成イメージ

~/.password-store/
├── service
│   ├── example.gpg
│   └── test.gpg
├── server
│   └── db.gpg
└── .gpg-id

この構造自体が管理ルールになるため、内容が非常に分かりやすく、git管理との相性も抜群です。

まとめ

passは「シンプル・透明・安全」を徹底した、Unix哲学に沿ったCLIパスワード管理ツールです。pass initで暗号化環境を整え、pass insertで安全に情報を登録し、pass showで必要なときに取り出すという直感的な操作体系が最大の魅力。ターミナル中心の作業やgit管理を前提とした環境では非常に扱いやすく、Linuxでの秘密情報管理の基本として押さえておきたいツールです。