mengapa gpg-agent membuat beberapa soket

Aug 20 2020

saat menggunakan gpgwith gpg-agent, soket berikut dibuat di ~/.gnupgdirektori saya :

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

Saya berasumsi, S.gpg-agentadalah gpg-agentsoket standar . Tapi untuk apa yang lainnya?

Saya tidak menggunakan gpg dengan ssh, atau gpg dengan browser.

Di mana ia dikonfigurasi, bahwa ini dibuat secara otomatis?

Bisakah saya menonaktifkannya?

Saya hanya butuh standar S.gpg-agent

Saya menggunakan gnupg 2.2.12Debian Buster.

Jawaban

5 PatrickMevzek Aug 21 2020 at 18:09

The gpg-agentdapat memiliki beberapa kepribadian dan memberikan layanan yang berbeda.

Misalnya, Anda dapat berhenti ssh-agentmenjalankan di kotak Anda, dan menggunakan gpg-agentsebagai pengganti ... selama Anda menggunakan soket yang tepat, S.gpg-agent.sshkarena harus mengimplementasikan protokol yang tepat sshdiharapkan untuk dibahas. Mengapa bisa begitu berguna? Misalnya, hingga baru-baru ini, sshtidak dapat menggunakan kunci yang disimpan di FIDO2 / U2F (seperti Yubikeys), ini hanya ditambahkan di 8.2 yang dirilis belum lama ini, yang kemudian membuat semuanya mati sederhana seperti yang dijelaskan dihttps://blog.snapdragon.cc/2020/02/23/direct-fido2-u2f-support-in-openssh-8-2-on-macos/

Sebelumnya, gpg-agentakan digunakan, karena gpgmemiliki dukungan untuk U2F yang ditangani seperti smartcard. Ini adalah salah satu dokumentasi kanonik tentang cara melakukannya:https://florin.myip.org/blog/easy-multifactor-authentication-ssh-using-yubikey-neo-tokens

Sekarang kembali ke gpg-agent, manual lengkapnya ada dihttps://www.gnupg.org/documentation/manuals/gnupg/Invoking-GPG_002dAGENT.html#Invoking-GPG_002dAGENT

Anda dapat menemukan semua opsi di https://www.gnupg.org/documentation/manuals/gnupg/Agent-Options.html#Agent-Options yang dapat dimasukkan ke dalam file konfigurasi, biasanya ~/.gnupg/gpg-agent.conf

Kita bisa belajar misalnya:

  1. tentang yang .extrasatu ini, kita dapat mempelajari cara menonaktifkannya dan kegunaannya:
--extra-socket name

Soket ekstra dibuat secara default, Anda dapat menggunakan opsi ini untuk mengubah nama soket. Untuk menonaktifkan pembuatan soket, gunakan "none" atau "/ dev / null" untuk nama.

Dengarkan juga koneksi gpg-agent native pada soket yang diberikan. Tujuan penggunaan soket tambahan ini adalah untuk menyiapkan penerusan soket domain Unix dari mesin jarak jauh ke soket ini pada mesin lokal. Sebuah gpg yang berjalan pada mesin jarak jauh kemudian dapat terhubung ke gpg-agent lokal dan menggunakan kunci pribadinya. Ini memungkinkan dekripsi atau penandatanganan data pada mesin jarak jauh tanpa mengekspos kunci pribadi ke mesin jarak jauh.

  1. Untuk dukungan ssh, yang .ssh:

--enable-ssh-support

--enable-putty-support

Protokol Agen OpenSSH selalu diaktifkan, tetapi gpg-agent hanya akan menyetel variabel SSH_AUTH_SOCK jika tanda ini diberikan.

Dalam mode operasi ini, agen tidak hanya mengimplementasikan protokol gpg-agent, tetapi juga protokol agen yang digunakan oleh OpenSSH (melalui soket terpisah). Akibatnya, harus memungkinkan untuk menggunakan gpg-agent sebagai pengganti drop-in untuk ssh-agent yang terkenal.

  1. Untuk soket browser dan informasi lebih lanjut, Anda dapat menggunakan https://wiki.archlinux.org/index.php/GnuPG#gpg-agent yang mengatakan:

gpg-agentbanyak digunakan sebagai daemon untuk meminta dan menyimpan kata sandi untuk rantai kunci. Ini berguna jika GnuPG digunakan dari program eksternal seperti klien email. gnupg hadir dengan soket pengguna systemd yang diaktifkan secara default. Soket ini gpg-agent.socket, gpg-agent-extra.socket, gpg-agent-browser.socket, gpg-agent-ssh.socketdan dirmngr.socket.

Main gpg-agent.socketdigunakan oleh gpg untuk terhubung ke gpg-agentdaemon.

Tujuan penggunaan gpg-agent-extra.socketpada sistem lokal adalah untuk menyiapkan penerusan soket domain Unix dari sistem jarak jauh. Ini memungkinkan penggunaan gpg pada sistem jarak jauh tanpa mengekspos kunci privat ke sistem jarak jauh. Lihat gpg-agent (1) untuk detailnya.

The gpg-agent-browser.socketmemungkinkan web browser untuk mengakses daemon gpg-agent.

The gpg-agent-ssh.socketdapat digunakan oleh SSH untuk kunci tembolok SSH ditambah dengan program ssh-add. Lihat agen #SSH untuk konfigurasi yang diperlukan.

The dirmngr.socketdimulai daemon GnuPG penanganan koneksi ke keyserver.

Jadi tidak ada salahnya memilikinya meskipun Anda tidak menggunakannya. Jika Anda benar-benar ingin memastikan mereka tidak ada, Anda dapat mencoba meletakkan yang berikut ini di file konfigurasi gpg-agent:

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

Saya tidak mengujinya, dokumentasi tidak berbicara tentang browser-sockettetapi pertanyaan lama ini tidak:https://askubuntu.com/questions/777900/how-to-configure-gnupgs-s-gpg-agent-socket-location