「Pass」の版間の差分
Kusanaginoturugi (トーク | 投稿記録) 細 (→インストール) |
(他言語へのリンクを追加) |
||
(2人の利用者による、間の14版が非表示) | |||
2行目: | 2行目: | ||
[[Category:パスワードマネージャ]] |
[[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 を使うことができます。 |
任意で {{Pkg|qtpass}} パッケージをインストールすることで [[Qt]] 製の GUI を使うことができます。 |
||
44行目: | 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 への移行 == |
||
49行目: | 69行目: | ||
== 拡張 == |
== 拡張 == |
||
− | バージョン 1.7 から、pass はコミュニティが開発した拡張をサポートしています。以下の拡張をインストールすることで pass の機能を強化することができます。 |
||
+ | バージョン 1.7 から、pass はコミュニティが開発した拡張をサポートしています。以下の拡張をインストールすることで pass の機能を強化することができます。 |
||
− | * [https://github.com/roddhjav/pass-tomb pass-tomb] ({{aur|pass-tomb}}) |
||
− | [[tomb]] の中で暗号化されたパスワードストアのツリーを管理します。 |
||
− | |||
− | * [https://github.com/tadfisher/pass-otp pass-otp] ({{Pkg|pass-otp}}) |
||
− | ワンタイムパスワード (OTP) トークンのサポート。 |
||
− | |||
− | * [https://github.com/roddhjav/pass-import pass-import] ({{aur|pass-import}}) |
||
− | 他のパスワードマネージャからのインポートツール。 |
||
− | * [https://github.com/roddhjav/pass- |
+ | * {{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}}}} |
||
− | 簡単にパスワードをアップデート。 |
||
+ | * {{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}}}} |
||
+ | *{{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}}}} |
||
== 高度な使い方 == |
== 高度な使い方 == |
||
67行目: | 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 コンテキスト == |
||
77行目: | 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}} に以下を追加してください: |
||
93行目: | 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 の統合 == |
||
130行目: | 149行目: | ||
機能させるには {{ic|pass insert --multiline}} を使って複数行のパスワードストアエントリを作成する必要があります。 |
機能させるには {{ic|pass insert --multiline}} を使って複数行のパスワードストアエントリを作成する必要があります。 |
||
+ | === GnuPG と組み合わせたパス用の中央 Git サーバー (SSH の例) === |
||
+ | パス用の中央 Git サーバーをセットアップすることにより、パスワード管理システムをセットアップできます。これにより、複数のクライアント環境を介して中央パスワードリポジトリを同期できます。 |
||
− | === Central Git server for pass in combination with GnuPG (SSH example) === |
||
+ | ==== サーバーにパス用のベア Git リポジトリをインストールする ==== |
||
− | You are able to setup a password management system by setting up a central Git server for pass. This allows you to synchronize your central password repository through multiple client environments. |
||
+ | サーバーで {{ic|git init --bare ~/.password-store}} を実行して、プッシュ先のベアリポジトリを作成します。 |
||
− | ==== Install a bare Git repository for pass on the server ==== |
||
− | On the server run {{ic|git init --bare ~/.password-store}} to create a bare repository you can push to. |
||
+ | ==== 認証された ssh 公開鍵のインポート ==== |
||
− | ==== Import authorized public SSH keys ==== |
||
+ | |||
− | See [[SSH keys#Copying the public key to the remote server]] |
||
+ | [[SSH 鍵#リモートサーバーに公開鍵をコピー]] を参照してください。 |
||
+ | |||
+ | ==== クライアント側 ==== |
||
+ | |||
+ | このセクションでは、GnuPG が構成されており、パスワードを暗号化するためのキーペアがあることを前提としています。 |
||
+ | ローカルクライアントで、クライアントにローカル パスワードストアがあることを確認してから、Git を介してローカル変更の管理を有効にし、リモート Git リポジトリを追加して、ローカル パス履歴をプッシュします。 |
||
− | ==== On the client ==== |
||
− | This section assumes you have configured GnuPG and have a key pair to encrypt passwords. |
||
− | On your local client ensure you have a local password store on the client, then enable management of local changes through Git, add your remote Git repository, and push your local pass history. |
||
{{bc|code=# Create local password store |
{{bc|code=# Create local password store |
||
pass init <gpg key id> |
pass init <gpg key id> |
||
154行目: | 176行目: | ||
}} |
}} |
||
+ | これで、{{ic|pass}} で始まる標準の Git コマンドを使用できるようになりました。例:{{ic|pass git push}} または {{ic|pass git pull}} pass を使用してパスワードストアを変更すると、自動的にコミットが作成されます。 |
||
− | Now you can use the standard Git commands, prefixed by {{ic|pass}}. For example: {{ic|pass git push}}, or {{ic|pass git pull}}. pass will automatically create commits when you use it to modify your password store. |
||
+ | == トラブルシューティング == |
||
− | == Troubleshooting == |
||
=== Encryption failed: Unusable public key === |
=== Encryption failed: Unusable public key === |
||
− | The following error can occur when attempting to insert a new entry: |
||
+ | 新しいエントリを挿入しようとすると、次のエラーが発生する可能性があります。 |
||
− | {{bc| |
||
+ | |||
− | $ pass insert archlinux.org/wiki/username |
||
+ | {{hc|$ pass insert archlinux.org/wiki/username| |
||
Enter password for archlinux.org/wiki/username: |
Enter password for archlinux.org/wiki/username: |
||
Retype password for archlinux.org/wiki/username: |
Retype password for archlinux.org/wiki/username: |
||
169行目: | 191行目: | ||
}} |
}} |
||
+ | これは、GnuPG キーの信頼レベルが "ultimate" 以外に設定されている場合に発生します。 {{ic|pass}} に使用されるキーを編集して、その信頼レベルを "ultimate" に設定します。 |
||
− | This occurs if the trust level of the GnuPG key is set to anything other than "ultimate." Edit the key used for {{ic|pass}} to set its trust level to "ultimate." |
||
+ | |||
+ | {{hc|$ gpg --edit-key ''your_key_id''| |
||
+ | > trust |
||
+ | > 5 |
||
+ | }} |
||
== 参照 == |
== 参照 == |
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