やる

やる

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に生成、修正、オープンなどのキーを通知します。インターフェイスには、システムのキー、信頼レベルなどが一覧表示されます。しかし、その場合、すべては~/.gnupgGnuPG形式でディレクトリに保存されます。 (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]

おすすめ記事