「Pass」の版間の差分
(同期) |
(他言語へのリンクを追加) |
||
(5人の利用者による、間の19版が非表示) | |||
1行目: | 1行目: | ||
+ | {{Lowercase title}} |
||
− | [[Category:セキュリティ]] |
||
+ | [[Category:パスワードマネージャ]] |
||
+ | [[Category:コンソールアプリケーション]] |
||
+ | [[Category:OpenPGP]] |
||
[[en:Pass]] |
[[en:Pass]] |
||
+ | [[zh-hans:Pass]] |
||
− | [https://www.passwordstore.org/ pass] はコマンドライン用のシンプルなパスワードマネージャです。パスワードは単純なディレクトリツリー構造の gpg で暗号化されたファイルの中に保存されます。pass はシェルスクリプトであり {{Pkg|gnupg}}, {{Pkg|tree}}, {{Pkg|git}} などの既存のツールを利用します。 |
||
+ | [https://www.passwordstore.org/ オフィシャルウェブサイトから]: |
||
+ | |||
+ | :パスワード管理はシンプルで、Unix の哲学に従ったものであるべきです。pass では、各パスワードは、ファイル名がパスワードを必要とする Web サイトやリソースのタイトルである gpg 暗号化ファイルの中に存在します。これらの暗号化されたファイルは、意味のあるフォルダ階層に整理したり、コンピュータからコンピュータにコピーしたり、一般に、標準のコマンドラインファイル管理ユーティリティを使用して操作したりすることができます。 |
||
+ | |||
+ | pass は、コマンドライン用の単純なパスワード マネージャーです。 pass は、[[GnuPG]]、{{Pkg|tree}}、[[Git]] などの既存のツールを利用するシェル スクリプトです。 |
||
== インストール == |
== インストール == |
||
− | {{Pkg|pass}} パッケージを[[pacman|インストール]]してください。 |
+ | {{Pkg|pass}} パッケージを [[pacman|インストール]] してください。 |
− | + | 任意で {{Pkg|qtpass}} パッケージをインストールすることで [[Qt]] 製の GUI を使うことができます。 |
|
== 基本的な使い方 == |
== 基本的な使い方 == |
||
42行目: | 50行目: | ||
エントリを選択することクリップボードにパスワードがコピーされます。大文字・小文字の区別などカスタマイズオプションについては {{ic|man dmenu}} を見てください。キーバインドを設定することでアプリケーションから簡単にパスワードが使えるようにすることもできます。 |
エントリを選択することクリップボードにパスワードがコピーされます。大文字・小文字の区別などカスタマイズオプションについては {{ic|man dmenu}} を見てください。キーバインドを設定することでアプリケーションから簡単にパスワードが使えるようにすることもできます。 |
||
+ | |||
+ | == データ編成 == |
||
+ | |
||
+ | デフォルトでは、{{ic|pass insert}} で作成された資格情報ファイルにはパスワードのみが含まれます。ただし、いくつかのアプリケーションがユーザー名、URL などの詳細データを要求するため、それだけでは不十分な場合があります。 |
||
+ | コマンド {{ic|pass edit ''password_name''}} を使用して、既存のファイルを自由に編集できます。 |
||
+ | 以下は、[https://www.passwordstore.org/ pass-project ページ] で提供されている推奨される組織スキームです。このスキームでオプション {{ic|-c}} または {{ic|--clip}} を使用すると、パスワードのみがコピーされます。 |
||
+ | |
||
+ | {{bc| |
||
+ | YwrZSNH35z164ym9pI |
||
+ | URL: *.amazon.com/* |
||
+ | Username: AmazonianChicken@example.com |
||
+ | Secret Question 1: What is your childhood best friend's most bizarre superhero fantasy? Oh god, Amazon, it's too awful to say... |
||
+ | Phone Support PIN #: 84719 |
||
+ | }} |
||
== pass への移行 == |
== pass への移行 == |
||
47行目: | 69行目: | ||
== 拡張 == |
== 拡張 == |
||
+ | |||
バージョン 1.7 から、pass はコミュニティが開発した拡張をサポートしています。以下の拡張をインストールすることで pass の機能を強化することができます。 |
バージョン 1.7 から、pass はコミュニティが開発した拡張をサポートしています。以下の拡張をインストールすることで pass の機能を強化することができます。 |
||
− | * [https://github.com/roddhjav/pass-tomb |
+ | * {{App|pass-tomb|[[tomb]] の中で暗号化されたパスワードストアのツリーを管理します。|https://github.com/roddhjav/pass-tomb|{{AUR|pass-tomb}}}} |
+ | * {{App|pass-otp|ワンタイムパスワード (OTP) トークンのサポート。|https://github.com/tadfisher/pass-otp|{{Pkg|pass-otp}}}} |
||
− | [[tomb]] の中で暗号化されたパスワードストアのツリーを管理します。 |
||
+ | * {{App|pass-import|他のパスワードマネージャからのインポートツール。|https://github.com/roddhjav/pass-import|{{AUR|pass-import}}}} |
||
− | |||
− | * |
+ | * {{App|pass-update|簡単にパスワードをアップデート。|https://github.com/roddhjav/pass-update|{{AUR|pass-update}}}} |
+ | * {{App|pass-audit|パスワード リポジトリを監査するための拡張機能。|https://github.com/roddhjav/pass-audit|{{AUR|pass-audit}}}} |
||
− | ワンタイムパスワード (OTP) トークンのサポート。 |
||
+ | *{{App|pass-coffin|署名および暗号化された棺桶内のデータを非表示にするパスワード ストア拡張機能。|https://github.com/ayushnix/pass-coffin|{{AUR|pass-coffin}}}} |
||
− | |||
+ | *{{App|pass-tessen|fuzzy なデータ選択とパスワードストアからのコピーアンドペースト。|https://github.com/ayushnix/pass-tessen|{{AUR|pass-tessen}}}} |
||
− | * [https://github.com/roddhjav/pass-import pass-import] ({{aur|pass-import}}) |
||
− | 他のパスワードマネージャからのインポートツール。 |
||
− | |||
− | * [https://github.com/roddhjav/pass-update pass-update] ({{aur|pass-update}}) |
||
− | 簡単にパスワードをアップデート。 |
||
== 高度な使い方 == |
== 高度な使い方 == |
||
65行目: | 84行目: | ||
[[環境変数]]を使うことで ''pass'' が使用するパスワードストアのディレクトリや git ディレクトリを変更できます: |
[[環境変数]]を使うことで ''pass'' が使用するパスワードストアのディレクトリや git ディレクトリを変更できます: |
||
PASSWORD_STORE_DIR=/path/to/store |
PASSWORD_STORE_DIR=/path/to/store |
||
− | PASSWORD_STORE_GIT=/path/to/store |
||
− | 複数の |
+ | これを使用して複数のパス リポジトリをサポートする方法の詳細については、[https://lists.zx2c4.com/pipermail/password-store/2016-November/002463.html このリンク] を参照してください。 |
+ | 次の {{ic|pw()}} エイリアスの例では、名前付きデータベースの最初の行をクリップボードに送信してから、2 行目を 5 秒後に送信し、最後に OTP コードをその 5 秒後に送信します。パスワードが 1 行目に、ユーザー名が 2 行目にあり、[https://github.com/google/google-authenticator/wiki/Key-Uri-Format OTP URI] が名前付きデータベースのどこかに存在すると仮定すると、ネット効果は、利用可能な(ブラウザなど)入力フィールドに連続してプライマリペーストするために ''ユーザー名パスワードOTPコード'' を渡します。: |
||
+ | |||
+ | pw() { |
||
+ | export PASSWORD_STORE_CLIP_TIME=8 |
||
+ | export PASSWORD_STORE_X_SELECTION=primary |
||
+ | pass -c2 $1; sleep 5; pass -c $1; sleep 5; pass otp -c $1; exit |
||
+ | } |
||
== 複数の pass コンテキスト == |
== 複数の pass コンテキスト == |
||
75行目: | 100行目: | ||
{{ic|~/.bashrc}} に以下のエイリアスを追加してください: |
{{ic|~/.bashrc}} に以下のエイリアスを追加してください: |
||
− | alias passred="PASSWORD_STORE_DIR |
+ | alias passred="PASSWORD_STORE_DIR=~/.pass/red pass" |
− | alias passblue="PASSWORD_STORE_DIR |
+ | alias passblue="PASSWORD_STORE_DIR=~/.pass/blue pass" |
{{Pkg|bash-completion}} をインストールして {{ic|~/.bash_completion}} に以下を追加してください: |
{{Pkg|bash-completion}} をインストールして {{ic|~/.bash_completion}} に以下を追加してください: |
||
91行目: | 116行目: | ||
{{ic|~/.pass/red}} と {{ic|~/.pass/blue}} を初期化したら {{ic|passred}} と {{ic|passblue}} エイリアスで2つの pass コンテキストを交互に使うことができます。コンテキストは好きなだけ追加できます。 |
{{ic|~/.pass/red}} と {{ic|~/.pass/blue}} を初期化したら {{ic|passred}} と {{ic|passblue}} エイリアスで2つの pass コンテキストを交互に使うことができます。コンテキストは好きなだけ追加できます。 |
||
− | |||
− | == GUI == |
||
− | |||
− | {{Pkg|qtpass}} パッケージをインストールしてください。 |
||
== Git の統合 == |
== Git の統合 == |
||
127行目: | 148行目: | ||
機能させるには {{ic|pass insert --multiline}} を使って複数行のパスワードストアエントリを作成する必要があります。 |
機能させるには {{ic|pass insert --multiline}} を使って複数行のパスワードストアエントリを作成する必要があります。 |
||
+ | |||
+ | === GnuPG と組み合わせたパス用の中央 Git サーバー (SSH の例) === |
||
+ | |||
+ | パス用の中央 Git サーバーをセットアップすることにより、パスワード管理システムをセットアップできます。これにより、複数のクライアント環境を介して中央パスワードリポジトリを同期できます。 |
||
+ | |||
+ | ==== サーバーにパス用のベア Git リポジトリをインストールする ==== |
||
+ | |||
+ | サーバーで {{ic|git init --bare ~/.password-store}} を実行して、プッシュ先のベアリポジトリを作成します。 |
||
+ | |||
+ | ==== 認証された ssh 公開鍵のインポート ==== |
||
+ | |||
+ | [[SSH 鍵#リモートサーバーに公開鍵をコピー]] を参照してください。 |
||
+ | |||
+ | ==== クライアント側 ==== |
||
+ | |||
+ | このセクションでは、GnuPG が構成されており、パスワードを暗号化するためのキーペアがあることを前提としています。 |
||
+ | ローカルクライアントで、クライアントにローカル パスワードストアがあることを確認してから、Git を介してローカル変更の管理を有効にし、リモート Git リポジトリを追加して、ローカル パス履歴をプッシュします。 |
||
+ | |||
+ | {{bc|code=# Create local password store |
||
+ | pass init <gpg key id> |
||
+ | # Enable management of local changes through Git |
||
+ | pass git init |
||
+ | # Add the the remote git repository as 'origin' |
||
+ | pass git remote add origin user@server:~/.password-store |
||
+ | # Push your local pass history |
||
+ | pass git push -u --all |
||
+ | }} |
||
+ | |||
+ | これで、{{ic|pass}} で始まる標準の Git コマンドを使用できるようになりました。例:{{ic|pass git push}} または {{ic|pass git pull}} pass を使用してパスワードストアを変更すると、自動的にコミットが作成されます。 |
||
+ | |||
+ | == トラブルシューティング == |
||
+ | === Encryption failed: Unusable public key === |
||
+ | |||
+ | 新しいエントリを挿入しようとすると、次のエラーが発生する可能性があります。 |
||
+ | |||
+ | {{hc|$ pass insert archlinux.org/wiki/username| |
||
+ | Enter password for archlinux.org/wiki/username: |
||
+ | Retype password for archlinux.org/wiki/username: |
||
+ | gpg: XXXXXXXXX: There is no assurance this key belongs to the named user |
||
+ | gpg: [stdin]: encryption failed: Unusable public key |
||
+ | Password encryption aborted. |
||
+ | }} |
||
+ | |||
+ | これは、GnuPG キーの信頼レベルが "ultimate" 以外に設定されている場合に発生します。 {{ic|pass}} に使用されるキーを編集して、その信頼レベルを "ultimate" に設定します。 |
||
+ | |||
+ | {{hc|$ gpg --edit-key ''your_key_id''| |
||
+ | > trust |
||
+ | > 5 |
||
+ | }} |
||
== 参照 == |
== 参照 == |
||
* [http://blog.sanctum.geek.nz/linux-crypto-passwords/ A more comprehensive pass tutorial] |
* [http://blog.sanctum.geek.nz/linux-crypto-passwords/ A more comprehensive pass tutorial] |
||
+ | * [https://www.passwordstore.org/ pass home page] |
||
+ | * [https://www.passwordstore.org/#other List of Compatible clients and possibilities for migration to pass] |
2023年12月27日 (水) 00:07時点における最新版
- パスワード管理はシンプルで、Unix の哲学に従ったものであるべきです。pass では、各パスワードは、ファイル名がパスワードを必要とする Web サイトやリソースのタイトルである gpg 暗号化ファイルの中に存在します。これらの暗号化されたファイルは、意味のあるフォルダ階層に整理したり、コンピュータからコンピュータにコピーしたり、一般に、標準のコマンドラインファイル管理ユーティリティを使用して操作したりすることができます。
pass は、コマンドライン用の単純なパスワード マネージャーです。 pass は、GnuPG、tree、Git などの既存のツールを利用するシェル スクリプトです。
目次
インストール
任意で qtpass パッケージをインストールすることで Qt 製の GUI を使うことができます。
基本的な使い方
パスワードストアを初期化:
$ 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 には検索やコピーを楽にする dmenu ラッパーが付属しています。使用するには、dmenu をインストールして次のコマンドを実行:
$ passmenu
エントリを選択することクリップボードにパスワードがコピーされます。大文字・小文字の区別などカスタマイズオプションについては man dmenu
を見てください。キーバインドを設定することでアプリケーションから簡単にパスワードが使えるようにすることもできます。
データ編成
デフォルトでは、pass insert
で作成された資格情報ファイルにはパスワードのみが含まれます。ただし、いくつかのアプリケーションがユーザー名、URL などの詳細データを要求するため、それだけでは不十分な場合があります。
コマンド pass edit password_name
を使用して、既存のファイルを自由に編集できます。
以下は、pass-project ページ で提供されている推奨される組織スキームです。このスキームでオプション -c
または --clip
を使用すると、パスワードのみがコピーされます。
YwrZSNH35z164ym9pI URL: *.amazon.com/* Username: AmazonianChicken@example.com Secret Question 1: What is your childhood best friend's most bizarre superhero fantasy? Oh god, Amazon, it's too awful to say... Phone Support PIN #: 84719
pass への移行
pass のプロジェクトページ に他のプログラムからパスワードをインポートするためのスクリプトが複数記載されています。
拡張
バージョン 1.7 から、pass はコミュニティが開発した拡張をサポートしています。以下の拡張をインストールすることで pass の機能を強化することができます。
- pass-tomb — tomb の中で暗号化されたパスワードストアのツリーを管理します。
- pass-otp — ワンタイムパスワード (OTP) トークンのサポート。
- pass-import — 他のパスワードマネージャからのインポートツール。
- pass-update — 簡単にパスワードをアップデート。
- pass-audit — パスワード リポジトリを監査するための拡張機能。
- pass-coffin — 署名および暗号化された棺桶内のデータを非表示にするパスワード ストア拡張機能。
- pass-tessen — fuzzy なデータ選択とパスワードストアからのコピーアンドペースト。
高度な使い方
環境変数を使うことで pass が使用するパスワードストアのディレクトリや git ディレクトリを変更できます:
PASSWORD_STORE_DIR=/path/to/store
これを使用して複数のパス リポジトリをサポートする方法の詳細については、このリンク を参照してください。
次の pw()
エイリアスの例では、名前付きデータベースの最初の行をクリップボードに送信してから、2 行目を 5 秒後に送信し、最後に OTP コードをその 5 秒後に送信します。パスワードが 1 行目に、ユーザー名が 2 行目にあり、OTP URI が名前付きデータベースのどこかに存在すると仮定すると、ネット効果は、利用可能な(ブラウザなど)入力フィールドに連続してプライマリペーストするために ユーザー名パスワードOTPコード を渡します。:
pw() { export PASSWORD_STORE_CLIP_TIME=8 export PASSWORD_STORE_X_SELECTION=primary pass -c2 $1; sleep 5; pass -c $1; sleep 5; pass otp -c $1; exit }
複数の pass コンテキスト
エイリアスを使うことで様々な pass コンテキストを設定できます。異なるチームで作業を行う場合などに有用です。
~/.bashrc
に以下のエイリアスを追加してください:
alias passred="PASSWORD_STORE_DIR=~/.pass/red pass" alias passblue="PASSWORD_STORE_DIR=~/.pass/blue pass"
bash-completion をインストールして ~/.bash_completion
に以下を追加してください:
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
~/.pass/red
と ~/.pass/blue
を初期化したら passred
と passblue
エイリアスで2つの pass コンテキストを交互に使うことができます。コンテキストは好きなだけ追加できます。
Git の統合
git
の認証ヘルパーとして pass
を使うことができます。pass-git-helperAUR または pass-git-helper-gitAUR パッケージをインストールしてください。
使用方法
詳しい使い方は github の README ファイル に書かれています。
git
の設定
以下のコマンドを実行して git の認証ヘルパーとして pass-git-helper
をインストール:
$ git config --global credential.helper /usr/bin/pass-git-helper
マッピングファイル
~/.config/pass-git-helper/git-pass-mapping.ini
ファイルを作成してください。git のリモートホストを pass
データベースにマッピングできます。フォーマットは以下の通りです:
[github.com] target=dev/github [*.fooo-bar.*] target=dev/fooo-bar
上記の通りホスト部にはワイルドカードを使うことができます。
パスワードストアレイアウト
pass と同じように、パスワードストアエントリの最初の行にパスワードを指定します。二行目はユーザー名として解釈されます。
機能させるには pass insert --multiline
を使って複数行のパスワードストアエントリを作成する必要があります。
GnuPG と組み合わせたパス用の中央 Git サーバー (SSH の例)
パス用の中央 Git サーバーをセットアップすることにより、パスワード管理システムをセットアップできます。これにより、複数のクライアント環境を介して中央パスワードリポジトリを同期できます。
サーバーにパス用のベア Git リポジトリをインストールする
サーバーで git init --bare ~/.password-store
を実行して、プッシュ先のベアリポジトリを作成します。
認証された ssh 公開鍵のインポート
SSH 鍵#リモートサーバーに公開鍵をコピー を参照してください。
クライアント側
このセクションでは、GnuPG が構成されており、パスワードを暗号化するためのキーペアがあることを前提としています。 ローカルクライアントで、クライアントにローカル パスワードストアがあることを確認してから、Git を介してローカル変更の管理を有効にし、リモート Git リポジトリを追加して、ローカル パス履歴をプッシュします。
# Create local password store pass init <gpg key id> # Enable management of local changes through Git pass git init # Add the the remote git repository as 'origin' pass git remote add origin user@server:~/.password-store # Push your local pass history pass git push -u --all
これで、pass
で始まる標準の Git コマンドを使用できるようになりました。例:pass git push
または pass git pull
pass を使用してパスワードストアを変更すると、自動的にコミットが作成されます。
トラブルシューティング
Encryption failed: Unusable public key
新しいエントリを挿入しようとすると、次のエラーが発生する可能性があります。
$ pass insert archlinux.org/wiki/username
Enter password for archlinux.org/wiki/username: Retype password for archlinux.org/wiki/username: gpg: XXXXXXXXX: There is no assurance this key belongs to the named user gpg: [stdin]: encryption failed: Unusable public key Password encryption aborted.
これは、GnuPG キーの信頼レベルが "ultimate" 以外に設定されている場合に発生します。 pass
に使用されるキーを編集して、その信頼レベルを "ultimate" に設定します。
$ gpg --edit-key your_key_id
> trust > 5