почему 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розетка. Но для чего нужны остальные?
Я не использую gpg с ssh или gpg с браузером.
Где настроено, что они создаются автоматически?
Могу я их отключить?
Мне нужен только стандарт S.gpg-agent
Я использую gnupg 2.2.12Debian Buster.
Ответы
Они gpg-agentмогут иметь несколько личностей и предоставлять разные услуги.
Например, вы можете перестать ssh-agentработать на вашем компьютере и использовать его gpg-agentв качестве замены ... при условии, что вы используете правильный сокет, S.gpg-agent.sshпотому что он должен реализовывать надлежащий протокол, sshкоторый ожидается обсудить. Почему это может быть полезно? Например, до недавнего времени sshне было возможности использовать ключи, хранящиеся в FIDO2 / U2F (например, Yubikeys), это было добавлено только в выпущенной не так давно версии 8.2, что значительно упрощает работу, как описано вhttps://blog.snapdragon.cc/2020/02/23/direct-fido2-u2f-support-in-openssh-8-2-on-macos/
До этого gpg-agentбудет использоваться, потому что gpgон поддерживает U2F, как смарт-карту. Это одна из канонических документов о том, как это сделать: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
Мы можем узнать, например:
- насчет
.extraодного, мы можем узнать как его отключить, так и для чего он используется:
--extra-socket nameДополнительный сокет создается по умолчанию, вы можете использовать эту опцию, чтобы изменить имя сокета. Чтобы запретить создание сокета, используйте в качестве имени «none» или «/ dev / null».
Также прослушивайте нативные соединения gpg-agent на данном сокете. Предполагаемое использование этого дополнительного сокета - настроить переадресацию сокета домена Unix с удаленного компьютера на этот сокет на локальном компьютере. Затем gpg, запущенный на удаленном компьютере, может подключиться к локальному gpg-агенту и использовать его закрытые ключи. Это позволяет расшифровывать или подписывать данные на удаленной машине, не раскрывая закрытые ключи удаленной машине.
- Для поддержки ssh
.sshодин:
--enable-ssh-support
--enable-putty-supportПротокол OpenSSH Agent всегда включен, но gpg-agent устанавливает переменную SSH_AUTH_SOCK только в том случае, если установлен этот флаг.
В этом режиме работы агент реализует не только протокол gpg-agent, но также протокол агента, используемый OpenSSH (через отдельный сокет). Следовательно, должна быть возможность использовать gpg-agent как замену хорошо известному ssh-agent.
- Для сокета браузера и дополнительной информации вы можете использовать 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.socketиdirmngr.socket.
Основной
gpg-agent.socketиспользуется gpg для подключения кgpg-agentдемону.Предполагаемое использование в
gpg-agent-extra.socketлокальной системе - установка пересылки сокетов домена Unix из удаленной системы. Это позволяет использовать gpg в удаленной системе, не раскрывая закрытые ключи удаленной системе. Подробнее см. Gpg-agent (1).Он
gpg-agent-browser.socketпозволяет веб-браузерам получить доступ к демону gpg-agent.
gpg-agent-ssh.socketМожет использоваться SSH кэшировать SSH ключей , добавляемых программы 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