web-dev-qa-db-ja.com

kwalletを使用してPGPキーを管理できますか?

Kmailで電子メールの署名と復号化に使用する2つのPGP鍵を持っています。その際、キーのパスワード(現在KeePassに保存されている)を入力する必要があります。

必要に応じて自動的にキーのロックを解除する方法でパスワードをkwalletに保存することは可能ですか?もしそうなら、これはどのように達成できますか?


編集: here に似たものを見つけましたが、PGPキーではなくSSHキー用です。多分それは適応できますか?

4
Baum mit Augen

ロック解除

必要に応じて自動的にキーのロックを解除する方法でパスワードをkwalletに保存することは可能ですか?もしそうなら、これはどのように達成できますか?

私の知る限り、これはkWalletでは実行できません。代わりに gpg-agent を使用してください。セキュリティとアクセスのしやすさのバランスを取りながら、自由に設定できます。実行しているディストリビューションに応じて、エージェントはそのまま動作します。おそらくそれはすでにバックグラウンドで実行されていますか?

その他の鍵管理

KeePassを使ったことがないので、その機能はわかりません。ただし、 kGPG は一見の価値があります。これは、システムのGnuPGのGUIフロントエンドです。具体的には、低めのレベル GPGの設定 (GPGエージェントを含む)も可能です。

GnuPG設定

ここでは、使用するgpgバイナリと、使用するconfiguration fileおよびホームフォルダーを構成できます。これらの値は最初の起動時に自動検出され、すでに機能しているはずです。

GnuPGエージェント を使用すると、すべてのアクションでパスワードを入力する必要がないため、GnuPGでの作業がより快適になります。しばらくの間メモリにキャッシュされるため、パスワードを必要とする操作はすぐに実行できます。セッションにアクセス可能なままにしておくと、他の人があなたの秘密鍵を使用できるようになる可能性があることに注意してください。

kMail

質問にはkmailタグも含まれているため、詳しく説明します。 PGP構成セクション および kmail FAQ、GnuPGセクション を読むことをお勧めします。上記のkGPGを使用してキーを設定した場合、ページの上部にあるすべての太った警告と手順について、それほど心配する必要はありません。それらについて知らされるだけです。

統合

統合は実際には暗黙的に行われています。 kGPGは、GnuPGに対して、作成、変更、開くなどのアクションを実行するキーを指示するだけです。システムのキーや信頼レベルなどがインターフェイスにリストされます。ただし、バックグラウンドでは、すべてがGnuPG形式で~/.gnupgディレクトリに保存されます。 (kGPGがGPGを呼び出すか、GPGライブラリにリンクされているかはわかりませんが、効果は同じです)

kMailは別の種類のフロントエンドです。 gpgコマンドを呼び出して、同じディレクトリに格納されているキーにアクセスします。たとえば、署名、暗号化、復号化などです。

gpg-agentはセッション全体です。つまり、kGPGで秘密鍵をロック解除すると、kMailでも秘密鍵がロック解除され、その逆も同様です。


編集する

私はちょうど kwalletcli を見つけました、これはpinentryにkwalletバインディングを提供します。私のディストリビューションはパッケージを提供していないので、現時点では試すことができません。

ディストリビューションもパッケージをサポートしていない場合は、手動でパッケージをインストールする必要がある場合があります。

もう一度、 Arch wiki が登場し、その日を保存します。

ヒント:/ usr/bin/pinentry-kwalletを使用するには、kwalletcliパッケージをインストールする必要があります。

~/.gnupg/gpg-agent.conf:
#pinentry interface with kdewallet
pinentry-program /usr/bin/pinentry-kwallet

オルタナティブ

kwalletcliをインストールしたくない、またはインストールできない場合は、kwallet-queryコマンドを使用してスクリプトを実行できる場合があります。パスワードを取得するために開くウォレットについての知識が必要です。詳細については、man kwallet-queryをご覧ください。

ただし、gpgはデフォルトでSTDINからのパスワード入力を許可しないため、 configure gpg を実行する必要があります。

Ssh-agentに関する注意

Gpg-agentが正しく動作するようになれば、それを ssh-agent として使用することもできます。

3
Tim

@Timのanswserで提案されている kwalletcli に基づいて、小さなpython kwalletでパスフレーズを検索するスクリプト githubで利用可能 を作成しました。依存関係は keyring pythonモジュールです。

現在の pinentry の代わりにそれを使用するように gpg-agent に指示するだけで、魔法が実行されます。また、パスフレーズを要求していないすべてのものに対して、バックグラウンドで実際のピンエントリプロセスを実行します。

0
Cimbali