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저는 데비안 버스터를 사용하고 있습니다.

답변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이를 수행하는 방법에 대한 표준 문서 중 하나는 다음과 같습니다.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. 그 중 하나 와 관련하여 .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.socket.dirmngr.socket

gpg-agent.socketgpg-agentgpg는 main을 사용하여 데몬 에 연결합니다 .

로컬 시스템에서의 용도는 gpg-agent-extra.socket원격 시스템에서 전달되는 Unix 도메인 소켓을 설정하는 것입니다. 이렇게 하면 개인 키를 원격 시스템에 노출하지 않고도 원격 시스템에서 gpg를 사용할 수 있습니다. 자세한 내용은 gpg-agent(1)를 참조하십시오.

gpg-agent-browser.socket웹 브라우저가 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

관련 정보