내 gpg.conf 파일에 use-agent
라는 줄이 있습니다.
이것이 의미하는 바를 이해합니다. 데몬 인 gpg-agent에. 매뉴얼 페이지에는 “gpg-agent는 어떤 프로토콜과도 독립적으로 비밀 (개인) 키를 관리하는 데몬입니다. gpg 및 gpgsm 및 몇 가지 다른 유틸리티에 대한 백엔드로 사용됩니다.”
누구나 gpg의 맥락에서 이것이 의미하는 바를 설명 할 수 있습니까? gpg-agent의 요점은 무엇입니까?
현재 GPG 1.4가 있습니다.
- 에이전트가 실행 중인지 어떻게 알 수 있습니까? 실제로 gpg-agent가 기본 GPG 1.4 패키지와 함께 설치되었는지 여부도 명확하지 않습니다.
- 실행 중이 아닌 경우 어떻게 시작할 수 있습니까?
- 어떻게해야합니까? 실행중인 경우 중지 하시겠습니까?
Answer
Gpg-agent는 백그라운드에서 실행되는 프로그램입니다. ( 데몬 ) 메모리에 GPG 비밀 키를 저장합니다. GPG 프로세스에 키가 필요한 경우 실행중인 gpg-agent 프로그램에 소켓 을 입력하고 키를 요청합니다. 에이전트 프로세스에 키가있는 경우 gpg에 제공합니다. 그렇지 않은 경우 키링에서 암호화 된 키를로드하려고 시도합니다. 키의 암호를 입력하라는 메시지가 표시됩니다. 에이전트가 복호화 된 키를 받으면 gpg 프로세스로 전달합니다. GPG 키 외에도 Gpg-agent는 SSH 키를 유사하게 저장하여 SSH 프로세스에 제공 할 수 있습니다 (예 : ssh-agent
프로그램은 SSH와 함께 제공됩니다.
키 에이전트를 사용하는 주요 포인트는 키를 사용할 때마다 암호를 입력 할 필요가 없습니다. 에이전트는 한 번에서 다음 번까지 키를 메모리에 보관합니다. GPG 자체는 작업이 완료되면 프로세스가 종료되기 때문에이를 수행 할 수 없습니다.
키 에이전트가 수행 할 수있는 또 다른 작업은 원격 시스템에서 실행중인 GPG가 로컬 에이전트 ( 로컬 파일에서로드하고 암호를 입력하라는 메시지가 표시 될 수 있습니다. Gpg-agent는 아직이 작업을 수행 할 수 없습니다. 계획된 기능 입니다. SSH는 매우 오랫동안 에이전트 포워딩을 해왔습니다. SSH 키에 gpg-agent를 사용합니다.)
GPG 1.x 또는 2.0.x는 GPG_AGENT_INFO
변수가 설정 되었기 때문에 에이전트가 실행 중임을 알고 있습니다.이 변수 에이전트와 통신 할 소켓의 위치 및 에이전트의 프로세스 ID를 포함합니다. GPG 2.1은 항상 에이전트 소켓을 ~/.gnupg
에 배치합니다. GPG 2.x는 항상 에이전트를 시작합니다. 프로세스가 실행되고 있지 않은 경우 처리합니다.
gpg-agent
를 실행하여 간단히 에이전트를 시작할 수 있습니다. 에이전트 프로세스를 세션의 일부로 유지하려는 경우 세션 관리자 호출을 gpg-agent my-session-manager
로 바꿀 수 있습니다. 일부 배포판에서는이를 자동으로 설정합니다. GPG는 에이전트를 자동으로 시작하고 GPG 2.1은 환경 변수없이 실행중인 에이전트를 추가로 찾습니다. 따라서 이전 버전의 GPG를 사용하거나 에이전트를 사용하여 다른 유형을 저장하지 않는 한이 방법으로 시작할 필요가 없습니다. SSH와 같은 키의 수입니다.
셸 명령입니다. kill
명령 을 다음으로 보냅니다. 에이전트 프로세스를 종료하거나 신호를 보냅니다.
Gpg-agent는 GPG 자체와 함께 제공됩니다. 일부 배포판에서는 별도로 패키지합니다.
댓글
- " GPG 프로세스에 키가 필요한 경우 소켓을 통해 실행중인 gpg-agent 프로그램에 접속하여 키를 요청합니다. 에이전트 프로세스에 키가있는 경우 gpg에 제공합니다. " 약간 오해의 소지가 있습니다. 에이전트는 클라이언트 프로세스에 키를 제공하지 않습니다. 대신 성능 클라이언트 프로세스 대신 키를 사용하는 orms 작업. (클라이언트는 에이전트에게 서명, 암호화 또는 복호화 할 항목을 제공하며 에이전트는이를 수행합니다.) 에이전트를 사용할 때 SSH 및 GPG 클라이언트 소프트웨어는 실제 키에 액세스 할 수 없습니다.
- " Gpg-agent는 '이 작업을 아직 수행 할 수 없으며 계획된 기능입니다. SSH는 오랫동안 에이전트 포워딩을 해왔습니다. (이것은 SSH 키에 gpg-agent를 사용하지 않는 이유입니다.) " 사실이 아닙니다. gpg-agent는 SSH 에이전트 전달과 함께 잘 작동합니다. 매일 사용합니다. SSH 클라이언트는 전달을 처리하고 gpg-agent는 실제로 관련되지 않습니다. 지원되지 않는 것은 GPG 자체 가 에이전트와 원격으로 대화하는 것입니다.