Password Store は、GNU Privacy Guard (GPG) と Git を使用して、Linux システムのパスワードを保護・管理するシンプルな UNIX プログラムです。シンプルで軽量、そして高速です。しかし、このシンプルさは、パスワードを取得するためにパスワードストアのデータベースにアクセスすることが少し苦痛になる可能性があることを意味します。しかし、もしあなたがEmacsを使っているなら、このプロセスをシームレスに自動化する方法があります。

そのために、password-storeもEmacsのパッケージで、Password Storeプログラムのフロントエンドとして機能します。バックエンドと同様、password-storeはシンプルで軽量です。さらに重要なのは、コミュニティによって作成された多くのプラグインを使用することで、簡単に機能を拡張できることです。

Password Storeはどのように動作しますか?

パスワードストアは、純粋なプレーンテキストでパスワードを作成、変更する非常にシンプルなパスワードマネージャです。パスワードストアの管理は、アカウントとパスワードごとにテキストファイルを管理するだけです。

これは安全ではなく、古風に見えるかもしれませんが、Password Storeは維持するすべてのファイルを暗号化することで動作するようにします。これにより、プレーンテキストの柔軟性を持ちながら、GPGのセキュリティと暗号化を実現することができます。

単純なファイルしか扱わないので、ファイルをフォルダ分けすることができます。

パスワードストアでは、パスワードファイルに付加情報を追加することも可能です。これは、ファイルの最初の行をパスワード用に確保するだけでよいからです。例えば、これは私のフォーラムのあるアカウントのパスワードファイルです。

  Thisismysupersecretpassword
  ===============INFORMATION==============
  ユーザー名:MySuperCoolName
  セキュリティ上の質問1:Yogi
  セキュリティ上の質問2:1992年トヨタカローラ
  セキュリティ上の質問3:スミス
 
  OTPキー: aabbccddff11223344
  ========================================

パスワードストアは、1行目以降の情報を読みません。このように、私は簡単に私のフォーラムのアカウントに関する任意の追加情報を追加することができます。これにより、プログラムはカスタムパスワードディレクトリを作成するだけでなく、パスワードのカスタムフォーマットを作成することができます。

Password Storeのインストール

シンプルであるため、Password Storeは簡単にインストールすることができます。さらに、ほぼすべてのLinuxディストリビューションで利用可能です。例えば、DebianやUbuntuでは、aptを使ってインストールすることができます。

sudo apt install pass gnupg

Fedoraでは、dnfを使用することができます。

sudo dnf install pass gnupg2

Arch Linux では、pacman を使うことができます。

sudo pacman -S pass gnupg

パスワードストアの作成

これで、パスワードストアの作成は2つのことを行う必要があります。

  • まず、GPGキーが必要です。これはパスワードストアに関連づけられるキーになります。このストアのために新しいものを作成するか、すでに持っている古いものを使用することができます。
  • 次に、パスワードストア自体を初期化する必要があります。これは、GPGで管理するシンプルなパスワードストアでも、GPGとGitでバージョン管理するものでもよいでしょう。いずれにせよ、この2つのバージョンを作成するには、1つのコマンドを実行するだけでよいのです。

Store 用の GPG キーを作成する

Password Storeは、そのすべての暗号化にGPGを使用しています。そのため、パスワードストアの安全性を確保し、あなただけに暗号化するために、あなた自身のGPGキーを作成することが必要です。

  1. GPGキーの作成は、驚くほど簡単です。そのためには、以下のコマンドを実行します。
gpg --full-generate-key
    1. 鍵の作成ウィザードが実行され、GPG鍵に関するいくつかのオプションを選択することができます。
    1. ここから、ウィザードは鍵に使用する暗号化アルゴリズムの種類を尋ねてきます。たいていの場合、デフォルトのRSAアルゴリズムで十分です。これを選択するには、Enterキーを押します。

GPG鍵の長さと有効期限を設定する

  1. ここから、ウィザードは、作成する鍵の長さを聞いてきます。一般的な経験則では、長い鍵は短い鍵よりもクラックされにくいと言われています。この記事では、鍵の長さを4096に設定しました。

2. この後、ウィザードは鍵の有効期限を設定するかどうかを尋ねます。一般的に、ある一定の期間を過ぎると失効するキーを使用することは良い習慣とされています。そうすることで、漏洩した鍵や、パスワードを忘れた鍵を自動的に失効させることができます。 3. 3. 私の場合、鍵の有効期限を短く設定して、忘れないようにするのが好きです。そのため、このオプションを「6m」に設定しています。

4. 次に、名前とメールアドレスの両方を入力する必要があります。これは、データの暗号化・復号化の際に、表示情報として使われるだけです。

5. 最後に、この鍵にアクセスするためのパスワードが必要です。その際、パスワードは強力で覚えやすいものでなければなりません。これは、パスワードストアにアクセスするたびに、このパスワードを使用することになるからです。既存のパスワードのコピーや新しいパスワードの追加も含まれます。

ストアの開始

ここまでできたら、次はパスワードストアを起動します。これには2つの方法があります。

  • デフォルトのGPG暗号化で、シンプルなパスワードストアを開始することができます。パスワードの保存とアクセスを簡単に行いたい場合に便利です。

ターミナルで以下のコマンドを実行します。

cd /home/$USER/ && pass init "あなたのgpg-email".


![](/uploads/emacs-password-09-pass-store-init.jpg)
これで、ホームディレクトリに".password-store "という名前でパスワードストアが作成されます。


* gitで管理されたパスワードストアを起動することもできます。これにより、ストアの履歴を細かく管理することができます。このように、自分が行った変更に簡単にジャンプバックすることができるようになります。これは、アカウントのパスワードを常に変更している場合に非常に便利です。


git で管理されたストアを運営したい場合は、以下のコマンドを実行する必要があります。

git initを渡す


![](/uploads/emacs-password-10-pass-git-init.png)
こうすることで、あなたのストアのgitリポジトリが起動します。ここから、あなたのストアに対するすべての git コマンドにアクセスするには、git の前に "pass" をつければよいのです。次のコマンドを実行すると、あなたの店のすべての git リモートを見ることができます。

pass git remote get-url –all


## Emacs とパスワードストアの統合


Emacsユーザーであれば、Password StoreをEmacsクライアントに統合することができます。まず、MELPAリポジトリから "password-store "パッケージをダウンロードします。


![](/uploads/emacs-password-11-password-store-package.png)
デフォルトでは、このリポジトリはEmacsの標準インストールに付属していません。そのため、まず明示的にEmacsの設定に追加する必要があります。


1. そのためには、以下のコマンドを "init.el" ファイルに記述してください。

(add-to-list ‘パッケージ・アーカイブ

‘(“メルパ” . “https://melpa.org/packages/%22" rel=“noopener” target="_blank”

https://melpa.org/packages/")) (package-initialize)


2. 2. 完了したら、Emacsクライアントをリロードして、変更を適用します。
3. 3. `Alt` + `X` を押して、`package-install` とタイプしてください。これでコマンドバッファがロードされ、Emacsがインストールしたいパッケージの 名前を聞いてきます。password-store` と入力します。


![](/uploads/emacs-password-12-package-install.png)
4. Emacsはpassword-storeパッケージのソースコードを取得し、コンパイルし、インストールします。最後に、`Alt` + `X` を押して `password-store-version` と入力すると、そのコマンドにアクセスできるはずです。


## ストアに新しいパスワードを追加する


1. これで、あなたのストアにアクセスするのは比較的簡単です。例えば、`Alt` + `X` を押して `password-store-insert` と入力すれば、新しいパスワードを追加することができます。
2. 2. これでプロンプトが表示され、パッケージは挿入したいパスワードの名前を尋ねてきます。


![](/uploads/emacs-password-13-insert-password.png)
3. ここで、パスワードそのものを入力します。他のパスワードのプロンプトと同様に、ここでの入力はマスクされます。


![](/uploads/emacs-password-14-input-password.png)
## ストアエントリーの編集


Password Storeの重要な強みの1つは、パスワードファイルをカスタマイズできることです。このため、あらゆるものを含む任意の形式を提供することができます。


1. 1. これを行うには、パスワードファイルを編集する必要があります。Alt` + `X` を押して `password-store-edit` と入力すれば編集できます。
2. 2. そうすると、パッケージが編集したいパスワードの入力を求めるプロンプトが表示されます。私の場合、"forum-account "エントリーに追加のセキュリティ質問を追加したいのです。


![](/uploads/emacs-password-15-edit-password.png)
3. ここから、パッケージは、GPGキーのパスワードを入力するように要求します。その後、Emacsはパスワードファイルの内容を別のバッファに表示し、編集できるようにします。


![](/uploads/emacs-password-16-additional-info.png)
4. 編集が終わったら、`Ctrl` + `X`, `Ctrl` + `S` でパスワードファイルを保存できます。その後、`Ctrl` + `X`, `K` を押すと、編集を終了できます。これでパスワードバッファは閉じられ、Password Storeのファイルツリーに変更をコミットするように指示します。


## ストア内のパスワードを削除する


同様に、ストアのパスワードを削除するのも簡単なプロセスです。Alt` + `X` を押して `password-store-remove` と入力すると、パスワードを削除することができます。そうすると、削除したいパスワードを入力するプロンプトが表示されます。


私の場合、もう見ていないサイトの古いパスワードを削除したかったのです。そこで、"my-old-password "と入力し、Enter`を押しました。


![](/uploads/emacs-password-17-delete-password.png)
![](/uploads/emacs-password-19-deleted-password.png)
## ストアからパスワードをコピーする


最後に、このパッケージでは、Emacsから直接パスワードをコピーすることも可能です。これは、あるサービスやアカウントにログインするときにいつでも素早くストアにアクセスしたい場合に非常に便利です。


1. これを行うには、`Alt` + `X` を押して `password-store-copy` とタイプします。
2. 2. この操作で、クリップボードにコピーするパスワードを入力するプロンプトが表示されます。


![](/uploads/emacs-password-18-copy-password.png)
これで完了です。これでEmacsをパスワード・マネージャとして使用する方法についての基本的な考えを持つことができました。さらに、Password Storeを使ったシンプルなファイル駆動型パスワードマネージャの使い方も理解できたことでしょう。


## よくある質問


### 1. パスワード ストアで KeepassXC と同様のパスワードを作成することはできますか?


はい!可能です。はい!このパッケージは新しいアカウントのパスワードをすぐに生成することができます。Alt` + `X` を押して `password-store-generate` と入力するとこの機能にアクセスできます。


これにより、パッケージは新しいアカウントを入力するように指示します。そこから、そのアカウントに対して十分にランダムなパスワードを生成します。そして、上記のように `password-store-copy` 関数を使用して、そのパスワードをコピーすることができます。


### 2. ワンタイムパスワード(OTP)のサポートは可能ですか?


はい、可能です。はい!パスワードストアには、コマンドラインからワンタイムパスワードを管理できる優れたプラグインがあります。しかし、それを使用するには、OTPを生成するための追加パッケージをインストールする必要があります。


例えば、DebianやUbuntuでは、以下のコマンドを実行してインストールすることができます。

sudo apt install pass-extension-otp


Fedoraでは、dnfを使用することができます。

sudo dnf install pass-otp


Arch Linux では、pacman を使うことができます。

sudo pacman -S pass-otp


このコマンドを実行すると、ストアのアカウントに OTP リンクを挿入することができます。

pass otp insert “アカウント名”


そこから、`pass otp "account-name"` を実行して、そのアカウント用のOTPコードを生成する必要があるだけです。


### 3. Emacsでパスワードをツリーとして表示することはできますか?


悲しいことにできません。しかし、minibuffer補完パッケージを使用している場合は、タブ補完ですべてのパスワードを表示することができます。


この機能を提供する最も一般的なパッケージはhelmとmctです。どちらも GNU ELPA リポジトリで入手できるので、 `package-install` 関数で簡単にインストールできます。


画像引用元: Unsplash

Akira
Akiraは情熱的なゲーマーであり、製品レビュアーです。ゲームをしていないときは、最新のゲーミングアクセサリーを試したり、製品のレビューをしていることが多い。彼の分かりやすいスタイルは、ゲーマーが自分のニーズに最も適した製品を簡単に判断できるようにするものです。また、技術的な問題にも精通しており、その解決方法も知っている。