Gpg-agent는 백그라운드 ( 데몬 ) 에서 실행되고 GPG 비밀 키를 메모리에 저장 하는 프로그램입니다 . GPG 프로세스에 키가 필요한 경우 소켓을 통해 실행중인 gpg-agent 프로그램에 접속 하여 키를 요청합니다. 에이전트 프로세스에 키가 있으면 gpg에 제공합니다. 그렇지 않은 경우 키링에서 암호화 된 키를로드하려고 시도하고 키 암호를 입력하라는 메시지를 표시합니다. 에이전트가 해독 된 키를 얻으면 gpg 프로세스로 전달합니다. GPG 에이전트는 GPG 키 외에도 SSH 키와 함께 제공되는 ssh-agent
프로그램 과 같이 SSH 키를 유사하게 저장하여 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와 같은 키
쉘 명령으로 에이전트 명령 을 보낼 수 있습니다 gpg-connect-agent
. 에이전트 프로세스를 종료 (또는 신호를 보내 려면) kill
명령 을 보내십시오.
Gpg 에이전트는 GPG 자체와 함께 제공됩니다. 일부 배포판은 별도로 배포합니다.