gpg-agent가 여러 소켓을 만드는 이유

Aug 20 2020

gpg와 함께 사용할 때 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.12Debian Buster에서 사용 하고 있습니다.

답변

5 PatrickMevzek Aug 21 2020 at 18:09

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에서 사용하는 에이전트 프로토콜 (별도의 소켓을 통해)도 구현합니다. 따라서 gpg-agent를 잘 알려진 ssh-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.

main gpg-agent.socket은 gpg에서 gpg-agent데몬 에 연결하는 데 사용됩니다 .

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

gpg-agent-browser.socket웹 브라우저는 GPG-에이전트 디먼에 액세스 할 수 있습니다.

gpg-agent-ssh.socketSSH를-추가 프로그램에 의해 추가 된 캐시 SSH 키에 SSH를 사용할 수 있습니다. 필요한 구성은 #SSH 에이전트를 참조하십시오.

dirmngr.socketkeyservers에 대한 연결을 취급 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