kmailの電子メールに署名し、復号化に使用する2つのPGPキーがあります。これを行うときは、キー(現在のKeePassに保存されている)のパスワードを入力する必要があります。
要求時にキーが自動的にロック解除されるように、私のkwalletにパスワードを保存できますか?それでは、これを達成する方法は何ですか?
編集:似たようなものが見つかりましたここただし、PGPキーの代わりにSSHキーとして機能します。たぶんこれを調整できますか?
答え1
やる
要求時にキーが自動的にロック解除されるように、私のkwalletにパスワードを保存できますか?それでは、これを達成する方法は何ですか?
私が知っている限り、kWalletではこれを行うことはできません。使用gpg-agent
代わりに。セキュリティとアクセスの容易さのバランスを保ちながら、必要に応じて自由に設定できます。実行中の展開に応じて、エージェントはすぐに機能する必要があります。たぶん、すでにバックグラウンドで実行されていますか?
その他のキー管理
使ったことがないカイトンだから、その特性を知りません。しかし、GPG一度見る価値があるようです。 GnuPG システムの GUI フロントエンドです。特に、低レベルも許容します。GPG設定、GPGプロキシを含む。
GnuPGの設定
configuration file
ここでは、どの gpg バイナリが使用されるか、どのホームフォルダを構成できます。この値は最初の起動時に自動的に検出され、すでに機能しています。使用GnuPGプロキシすべてのタスクにパスワードを入力する必要がないため、GnuPGをより快適に使用できます。しばらくの間メモリにキャッシュされるため、パスワードが必要なすべてのタスクをすぐに完了できます。他のユーザーにセッションへのアクセス権を付与すると、他のユーザーが自分の秘密鍵を使用することもできます。
郵便
質問にはkmailタグも含まれているので、これについても詳しく説明します。読みたいかもしれませんPGP設定セクションそしてkmail FAQ、GnuPGセクション。上記のkGPGを使用してすでにキーを設定している場合は、ページ上部のすべての警告と手順について心配する必要はありません。ただ知っておいてください。
完成
統合は実際に暗黙的に発生します。 kGPGはGnuPGに生成、修正、オープンなどのキーを通知します。インターフェイスには、システムのキー、信頼レベルなどが一覧表示されます。しかし、その場合、すべては~/.gnupg
GnuPG形式でディレクトリに保存されます。 (kGPGがGPGを呼び出すのかGPGライブラリにリンクしているのかわかりませんが、効果は同じです)
kMailはもう一つのフロントエンドです。gpg
同じディレクトリに保存されているキーにアクセスするコマンドを呼び出します。たとえば、署名、暗号化、復号化に使用されます。
これはgpg-agent
セッションの範囲です。つまり、kGPGで秘密鍵をロック解除すると、kMailの秘密鍵もロック解除され、その逆も同様です。
編集する
ちょうど見つけたクオラテクリー、pinentryのkwalletバインディングを提供します。私のディストリビューションではパッケージを提供していないので、今は試してみません。
ディストリビューションがパッケージをサポートしていない場合は、手動でインストールする必要があります。
また、アーチスウィキ現れて一日を救いました。
ヒント:/usr/bin/pinentry-kwalletを使用するには、kwalletcliパッケージをインストールする必要があります。
~/.gnupg/gpg-agent.conf:
#pinentry interface with kdewallet
pinentry-program /usr/bin/pinentry-kwallet
選ぶ
望ましくない、またはインストールできない場合クオラテクリーkwallet-query
、このコマンドを使用していくつかのスクリプトを実行できます。パスワードを取得するには、どのウォレットを開く必要があるかを知る必要があります。詳細についてはを参照してくださいman kwallet-query
。
ただし、gpgはデフォルトでSTDINでパスワード入力を許可しないため、次のものが必要です。GPGの設定それのために。
ssh-agentに関する注意
gpg-agentが機能するようになったら、次のように使用することもできます。SSHエージェント。
Kubuntu 22.04の例(Jellyfish)GitでKeybase PGPキー(認証と署名)を使用する方法
# setup Keybase where you're storing PGP keys in cloud
https://keybase.io/docs/the_app/install_linux
# Import the public key
keybase pgp export | gpg --import
# Import the private key
keybase pgp export -s | gpg --allow-secret-key-import --import
# show all keys
gpg --list-keys --with-keygrip
gpg --list-secret-keys --with-keygrip
# There should be 3 keys: one main [SC]==PUBKEY_USAGE_SIG&PUBKEY_USAGE_CERT and two subkeys [A]==PUBKEY_USAGE_AUTH && [E]==PUBKEY_USAGE_ENC
# Now you have to edit main one ([SC] ID) of them to "trust" it
gpg --edit-key PUT_[SC]_ID_HERE
key 0
trust
5
y
key 1
trust
5
y
key 2
trust
5
y
quit
echo 'enable-ssh-support' >> ~/.gnupg/gpg-agent.conf
echo 'pinentry-program /usr/bin/pinentry-kwallet' >> ~/.gnupg/gpg-agent.conf
gpg -K --with-keygrip
echo 'PUT_[A]_keygrip_ID_HERE' >> ~/.gnupg/sshcontrol
echo 'export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)' >> ~/.bashrc
echo 'gpgconf --launch gpg-agent' >> ~/.bashrc
# setup git configs & set your favorite editor
echo 'export VISUAL="vim"' >> ~/.bashrc
git config --global commit.gpgsign true
gpg --list-secret-keys --keyid-format=long
git config --global user.signingkey [SC]_sec_id
git config --global user.name "stackexchange"
git config --global user.email [email protected]
# reload terminal env & gpg-agent and check everything works
source ~/.bashrc
gpgconf --kill gpg-agent
ssh-add -L
ssh -T [email protected]
答え2
に基づいてクオラテクリー@Timの答えで提案されているように、kwalletでパスワードを見つけるために小さなPythonスクリプトを作成しました。githubで見つけることができます。唯一の依存関係はキーホルダーPythonモジュール
ただ言うgpg - エージェント現在の代わりにこれを使用してください松の木、それは魔法を発揮します。また、パスワードを必要としないすべてのタスクを処理するために、バックグラウンドで実際のpinentryプロセスを実行します。