GPG 프록시는 어떻게 작동하나요?

GPG 프록시는 어떻게 작동하나요?

내 gpg.conf 파일에는 다음과 같은 줄이 있습니다 use-agent.
이는 데몬 프로세스인 gpg-agent를 의미한다는 것을 알고 있습니다. 매뉴얼 페이지에는 "gpg-agent는 프로토콜과 관계없이 비밀(개인) 키를 관리하는 데 사용되는 데몬입니다. gpg 및 gpgsm은 물론 기타 여러 유틸리티의 백엔드 역할을 합니다."라고 나와 있습니다.

gpg의 맥락에서 이것이 무엇을 의미하는지 설명할 수 있는 사람이 있습니까? gpg-agent의 요점은 무엇입니까?

현재 GPG 1.4를 사용하고 있습니다.

  1. 에이전트가 실행 중인지 어떻게 알 수 있나요? 사실 gpg-agent가 기본 GPG 1.4 패키지와 함께 설치되어 있는지조차 확신할 수 없습니다.
  2. 실행되고 있지 않으면 어떻게 시작하나요?
  3. 실행 중인 경우 어떻게 중지하나요?

답변1

Gpg-agent는 백그라운드에서 실행되는 프로그램입니다(악마) GPG 키를 메모리에 저장합니다. GPG 프로세스에 키가 필요한 경우 다음을 통해 실행 중인 gpg-agent 프로그램에 연결됩니다.소켓그리고 열쇠를 요청하세요. 에이전트 프로세스에 키가 있으면 이를 gpg에 제공합니다. 그렇지 않은 경우 키링에서 암호화 키를 로드하려고 시도하고 키의 비밀번호를 묻는 메시지를 표시합니다. 에이전트는 암호 해독 키를 얻은 후 이를 gpg 프로세스에 전달합니다. GPG 키 외에도 Gpg-agent는 ssh-agentSSH와 함께 제공되는 프로그램과 마찬가지로 SSH 키를 저장하고 SSH 프로세스에 제공할 수 있습니다.

키 에이전트를 사용하는 포인트는 키를 사용할 때마다 비밀번호를 입력하지 않아도 된다는 점입니다. 에이전트는 한 번부터 다음 번까지 키를 메모리에 보관합니다. GPG 자체는 작업이 완료되면 프로세스가 종료되므로 이를 수행할 수 없습니다.

키 에이전트가 수행할 수 있는 또 다른 작업은 원격 시스템에서 실행 중인 GPG가 로컬 에이전트에서 키를 얻을 수 있도록 허용하는 것입니다(로컬 파일에서 키를 로드하고 비밀번호를 묻는 메시지를 표시할 수 있음). Gpg-agent는 아직 이 작업을 수행할 수 없습니다.계획된 기능. SSH에는 오랫동안 프록시 전달 기능이 있었습니다. (이것이 gpg-agent를 SSH 키로 사용하지 않는 이유입니다.)

GPG_AGENT_INFOGPG 1.x 또는 2.0.x는 변수가 설정되어 있으므로 에이전트가 실행 중이라는 것을 알고 있습니다 . 이 변수에는 에이전트와 통신하기 위한 소켓의 위치와 에이전트의 프로세스 ID가 포함됩니다. GPG 2.1은 항상 프록시 소켓을 배치합니다 ~/.gnupg. 프록시 프로세스가 실행되고 있지 않으면 GPG 2.x는 항상 프로세스를 시작합니다.

에이전트를 시작하려면 실행하면 됩니다 gpg-agent. 에이전트 프로세스를 세션의 일부로 유지하려면 세션 관리자에 대한 호출을 대체할 수 있습니다 gpg-agent my-session-manager. 일부 배포에서는 이 기능을 자동으로 설정합니다. GPG는 자동으로 에이전트를 시작하고 GPG 2.1은 추가로 환경 변수 없이 실행 중인 에이전트를 찾습니다. 따라서 이전 버전의 GPG를 사용하거나 에이전트를 사용하여 SSH와 같은 다른 유형의 키를 저장하지 않는 한 이 방법으로 시작할 필요는 없습니다. .

상담원을 보내시면 됩니다주문하다그리고gpg-connect-agent쉘 명령. 보내다kill주문하다에이전트 프로세스를 종료합니다(또는 신호를 보냅니다).

Gpg-agent는 GPG 자체와 함께 제공됩니다. 일부 배포판에서는 별도로 패키지합니다.

관련 정보