1) 키 검색에 사용할 서버를 어떻게 알 수 있나요?gpg
gpg --search-key <keyword>
2) 조회된 서버 목록에 서버를 추가하는 방법은 무엇입니까?
답변1
"평판이 좋은" 키 서버는 다른 서버와 키 업데이트를 교환하므로 한 서버를 사용하는 것은 다른 서버를 사용하는 것과 같습니다(어떤 경우에는 약간의 지연이 있음). 과거에는 이런 조언이 있었습니다.SKS 서버 풀 사용, 보안 연결을 사용하는 것이 좋습니다. 자세한 내용은 이전 링크를 참조하세요.이 답변. 그러나 풀은 비활성화되었습니다.
GPG 2.3.2부터 keyserver.ubuntu.com이 기본적으로 사용됩니다. 이전 버전에서 이 작업을 수행하려면 다음을 사용하세요.
gpg --keyserver keyserver.ubuntu.com --search-key ...
이 버전 이상을 사용하고 기본 구성을 변경하지 않은 경우 키 서버를 수동으로 지정할 필요가 없습니다.
필요한 경우 관련 옵션을 추가하여 키서버 설정을 영구적으로 저장할 수 있습니다( ~/.gnupg/dirmngr.conf
이미 실행 중인 경우 데몬을 실행해야 할 수도 있음).gpgconf --reload dirmngr
dirmngr
keyserver hkps://keyserver.ubuntu.com
이 파일에서 여러 옵션을 지정할 수 있지만 keyserver
내 생각에는 마지막 옵션만 고려되는 것 같습니다.
원래 질문에 실제로 대답하기 위해 적어도 GPG 2.1 버전은 쿼리에 사용되는 키 서버를 보여줍니다.
$ gpg --search-key A36B494F
gpg: data source: https://host-37-191-236-118.lynet.no:443
...
답변2
$ gpg -v --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
gpg: data source: https://162.213.33.8:443
gpg: armor header: Version: Hockeypuck ~unreleased
gpg: armor header: Comment: Hostname:
gpg: key 3804BB82D39DC0E3: number of dropped non-self-signatures: 108
gpg: pub rsa4096/3804BB82D39DC0E3 2014-10-28 Michal Papis (RVM signing) <[email protected]>
gpg: key 3804BB82D39DC0E3: "Michal Papis (RVM signing) <[email protected]>" not changed
gpg: Total number processed: 1
gpg: unchanged: 1
"데이터 소스" 줄은 어떤 서버가 사용되었는지 알려줍니다.
이것은 Arch Linux에서 실행되고 있으며 어떤 이유로(어떤 서버가 구체적으로 응답합니까?) 도메인을 알려주지 않지만(Debian에서는 도메인을 알려줍니다) 다음을 수행할 수 있습니다.
$ host 162.213.33.8
8.33.213.162.in-addr.arpa domain name pointer keyserver.ubuntu.com.
또는 소스 코드를 확인할 수도 있습니다. Arch Linux의 경우 공식 버전을 사용합니다.스위치keyserver.ubuntu.com으로 이동하세요.2.2.29
,그리고 2.3.2
. 데비안이 사용하고 있습니다keys.openpgp.org
~부터 2.2.17
(또 있다고 하네요.널리 알려지지 않은 나뭇가지~을 위한2.2.12
).
목록에 키서버를 추가하려면 다음을 사용할 수 있습니다.$GNUPGHOME/dirmngr.conf
:
keyserver keys.openpgp.org
변경 사항이 적용되는지 확인하십시오 gpgconf --reload dirmngr
(또는 ).gpgconf --kill dirmngr
이 두 개가 권장되는 키 서버인 것 같습니다. 당신은 또한 볼 수 있습니다이 답변.
만약을 대비해서 이 부분은 생략하기로 했어요
그것을 찾는 한 가지 방법 strace
:
$ pkill dirmngr; strace -fs 1024 gpg --recv-keys 7D2BAF1CF37B13E2069D6956105BD0E739499BDB |& grep resolve_dns_addr
[pid 15102] write(2, "dirmngr[15101.5]: resolve_dns_addr for 'keys.openpgp.org': 'keys.openpgp.org' [already known]", 93) = 93
[pid 15102] write(2, "dirmngr[15101.5]: resolve_dns_addr for 'keys.openpgp.org': 'keys.openpgp.org' [already known]", 93) = 93
키 서버와 상호 작용하기 때문에 먼저 종료 해야 하며 dirmngr
이미 실행 중인 경우 수행 중인 작업을 확인할 수 없습니다.
-f
- 하위 프로세스를 추적합니다. -s
- 인쇄할 최대 문자열 크기(기본값은 32)입니다.
답변3
그러면 현재 사용 중인 모든 주요 서버가 나열 dirmngr
되고 필요한 경우 시작됩니다.
gpg-connect-agent --dirmngr 'keyserver' /bye