gpg-agentがマルチソケットを生成する理由

gpg-agentがマルチソケットを生成する理由

gpgwithを使用すると、私のディレクトリに次のソケットが作成されますgpg-agent~/.gnupg

S.gpg-agent
S.gpg-agent.browser
S.gpg-agent.extra
S.gpg-agent.ssh

S.gpg-agent普通のソケットだと思いますgpg-agent。しかし、他のものはどんな役に立ちますか?

私はsshでgpgを使用せず、ブラウザでgpgを使用しません。

どこで構成されており、自動的に生成されますか?

無効にできますか?

私はただ基準が必要なだけです。S.gpg-agent

gnupg 2.2.12私はDebianバスターを使用しています。

答え1

彼らはgpg-agentさまざまな性格を持つことができ、様々なサービスを提供することができます。

たとえば、議論する予定の正しいプロトコルを実装する必要があるため、正しいソケットを使用している限り、ボックスを実行をssh-agent停止して代替gpg-agentとして使用できます。なぜそんなに役に立つのですか?たとえば、最近まで、FIDO2 / U2F(Yubikeysなど)に保存されているキーは使用できませんでした。これはしばらく前にリリースされた8.2にのみ追加されたため、以下で説明するように作業が非常に簡単になりました。S.gpg-agent.sshsshsshhttps://blog.snapdragon.cc/2020/02/23/direct-fido2-u2f-support-in-openssh-8-2-on-macos/

それまでは、スマートカードのように扱われるU2F取引をサポートするのでgpg-agent使用される予定だ。gpgこれを行う方法の標準文書の1つは次のとおりです。https://florin.myip.org/blog/easy-multifactor-authentication-ssh-using-yubikey-neo-tokens

ここに戻り、gpg-agentマニュアル全体は次の場所にあります。https://www.gnupg.org/documentation/manuals/gnupg/Invoking-GPG_002dAGENT.html#Invoking-GPG_002dAGENT

すべてのオプションは以下にあります。https://www.gnupg.org/documentation/manuals/gnupg/Agent-Options.html#Agent-Optionsこれは通常設定ファイルに入れることができます。~/.gnupg/gpg-agent.conf

たとえば、次のように学習できます。

  1. そのうちの1つに関して.extra無効にする方法と用途を学ぶことができます。
--extra-socket name

デフォルトでは追加のソケットが作成され、このオプションを使用してソケット名を変更できます。ソケットの生成を無効にするには、名前として「none」または「/dev/null」を使用します。

また、指定されたソケットからデフォルトのgpg-agent接続を受信します。この追加ソケットの目的は、リモートコンピュータからローカルコンピュータのこのソケットに渡されるUnixドメインソケットを設定することです。その後、リモートシステムで実行されているgpgはローカルgpg-agentに接続し、その秘密鍵を使用できます。これにより、秘密鍵をリモートコンピュータに公開することなく、リモートコンピュータからデータを復号化または署名できます。

  1. SSHサポートには次の.sshものがあります。

--enable-ssh-support

--enable-putty-support

OpenSSHエージェントプロトコルは常に有効ですが、gpg-agentはこのフラグが指定されている場合にのみSSH_AUTH_SOCK変数を設定します。

この動作モードでは、エージェントはgpg-agentプロトコルだけでなく、OpenSSHによって使用されるエージェントプロトコルも(別々のソケットを介して)実装します。したがって、よく知られているssh-agentの代替品としてgpg-agentを使用することができます。

  1. ブラウザソケットと追加情報を表示するには、次のものを使用できます。https://wiki.archlinux.org/index.php/GnuPG#gpg-agentもちろん:

gpg-agentキーチェーンのパスワードを要求してキャッシュするデーモンとして主に使用されます。これは、外部プログラム(メールクライアントなど)でGnuPGを使用する場合に便利です。 gnupgには、デフォルトで有効になっているsystemdユーザーソケットが付属しています。これらのソケットはgpg-agent.socket、、、gpg-agent-extra.socketおよびgpg-agent-browser.socketですgpg-agent-ssh.socketdirmngr.socket

gpg-agent.socketgpg-agentgpgはmainを使用してデーモンに接続します。

ローカルシステムでの使用は、gpg-agent-extra.socketリモートシステムから渡されるUnixドメインソケットを設定することです。これにより、秘密鍵をリモートシステムに公開することなく、リモートシステムでgpgを使用できます。詳細については、gpg-agent(1) を参照してください。

gpg-agent-browser.socketWebブラウザがgpg-agentデーモンにアクセスできるようにします。

gpg-agent-ssh.socketSSHはこれを使用して、ssh-addプログラムによって追加されたSSHキーをキャッシュできます。必要な設定については#SSHエージェントを参照してください。

dirmngr.socketキーサーバーへの接続を処理するには、GnuPGデーモンを起動します。

そのため、使用しなくても持っていても問題ありません。実際に存在しないことを確認するには、gpg-agent設定ファイルに次のように入力します。

extra-socket /dev/null
browser-socket /dev/null

私はこれをテストしておらず、ドキュメントにも記載されていませんが、browser-socketこの古い質問は次のとおりです。https://askubuntu.com/questions/777900/how-to-configure-gnupgs-s-gpg-agent-socket-location

関連情報