GUIで実行しているときにpass
パスワードを読み取るコマンド(例:)を実行すると、pass -c Email/FooBar
パスワードフレーズを入力するように求めるプロンプトが表示されます。パスワードを入力すると、パスワードがクリップボードにコピーされます。
その後、ログアウトして再ログインせずに別のパスワードを読み取るコマンドを実行すると、pass
パスワードを再入力する必要はありません。
しかし、仮想端末で同じことを試した場合は、Control-Alt-F1
毎回パスワードを入力する必要があります。
仮想端末でログインセッションごとにパスワードを正確に1回入力するにはどうすればよいですか?
答え1
コンソール(仮想端末と呼ばれるもの)と(GUI)端末での使用経験の違いは、スクリプトpass
で使用されるpass
キー管理とは何の関係もありません。gpg
pass
gpg-agent
最新のディストリビューションでは、Xで自動的に起動します。端末とコンソールのいずれかでジョブを実行すると、gpg-agent
これを確認できます。env | fgrep GPG_AGENT
私のLinux Mint 17では/etc/X11/Xsession.d/90gpg-agent
。
gpg-agent
ページman
に示されているように:
X サーバーを使用していない場合は、通常の起動ファイル ~/.profile または .bash_profile に入れることもできます。 gpg-agentの複数のインスタンスを実行しないことが最善であるため、1つだけが実行されていることを確認する必要があります。 gpg-agentは環境変数を使用して、クライアントに通信パラメータについて通知します。実行中のエージェントをテストできるように、この環境変数の内容をファイルに書き込むことができます。以下は、Bourne シェル構文の使用例です。
gpg-agent --daemon --enable-ssh-support \
--write-env-file "${HOME}/.gpg-agent-info"
上記は90gpg-agent
実際にスマートで既にgpg-agent
実行されているかどうかをテストしますが、基本的に~/.gnupg/gpg-agent-info-$(hostname)
。
ディストリビューションが同様の設定を持っている場合は、上記の行を自分のディストリビューションに追加できる必要があります~/.profile
(ただし、Xの開始と一致するPIDFILEを使用する必要がありますgpg-agent
)。また、ファイルを再評価して、複数のコンソールで同じgpg-agentを使用できるようにする必要があります.gpg-agent-info
。
これを設定しようとするときは、pstree | grep -F pgp-agent
必要以上にエージェントを実行しないようにしてください。そうしないと、環境によってはpass
パスワードを再度尋ねるか、および/または他のコンソール間でパスワードを要求するかが異なります。