이것을 실행하면 gpg --with-fingerprints --with-colons keyfile.key
키 파일 내 키의 키 지문(내가 원하는 것)이 포함된 기계 구문 분석 가능한 출력이 stdout에 표시되고 stderr에서는 다음 오류가 발생합니다.
gpg: WARNING: no command supplied. Trying to guess what you mean ...
그래서 GnuPG는 명령을 정확하게 추측했지만, 어떤 명령을 추측했는지는 평생 알 수 없습니다. 매뉴얼 페이지에 나열된 거의 모든 명령을 시도했습니다. 저는 GnuPG 2.2를 사용하고 있습니다.
키 파일을 읽고 키에 대한 정보를 표시하는 올바른 명령을 아는 사람이 있습니까?
편집하다: 이상적으로 메커니즘은 표준 입력에서 키 파일을 읽을 수 있습니다.
cat keyfile.key | gpg --some-command
앞서 이것을 언급했어야 했지만 많은 gpg 명령이 stdin과 함께 작동하며 이를 관련 제약 조건으로 간주하지도 않았습니다.
답변1
메일링 리스트에 있는 선의의 사람들이 [email protected]
대답을 했습니다:
버전 >= 2.1.23의 경우:
cat keyfile.key | gpg --with-colons --import-options show-only --import
버전 >= 2.1.13, < 2.1.23인 경우:
cat keyfile.key | gpg --with-colons --import-options import-show --dry-run --import
답변2
최신 버전의 경우:
gpg --show-keys my-local-key.asc
~에서매뉴얼 페이지:
--show-keys
이 명령은 OpenPGP 키를 입력으로 사용하고 로컬에 저장된 키에 대한 명령과 동일한 방식으로 이에 대한 정보를 인쇄합니다
--list-keys
. 또한 목록 옵션 및show-unusable-uids
도 활성화 됩니다 . 자동 처리와 마찬가지로 이 명령은 옵션과 함께 사용해야 합니다.show-unusable-subkeys
show-notations
show-policy-urls
--with-colons.
답변3
GnuPG는 키 파일의 내용을 나열하는 전용 명령을 모릅니다. gpg --list-packets <keyfile>
키 파일을 키 링 및 키 목록으로 사용하거나(그러나 이는 안정적이고 기계에서 읽을 수 있는 출력이 아님) 정의하십시오 . GnuPG 2.0 이전의 이전 키링 형식은 키를 키 패킷의 연결로 저장했기 때문에 키 파일을 키링으로 사용할 수도 있습니다. 적어도 GnuPG 2.1과 2.2는 여전히 이전 키링 형식을 지원하며 가까운 시일 내에 이것이 변경될 것으로 예상하지 않습니다.
gpg --with-fingerprint --with-colons --no-default-keyring --keyring <keyfile> --list-keys
꼭 포함하세요 --no-default-keyring
. 그렇지 않으면 GnuPG가 사용자 키링에 있는 모든 키도 인쇄합니다!
답변4
최신 버전의 gngpg 버전2.2.8위에:
다음 사항에만 관심이 있으시면짧은또는긴키 지문 stderr를 stdout으로 리디렉션할 필요가 없습니다 2>&1
. (
예: ansible 또는 기타 구성 관리 도구와 같이 진행하기 전에 지문을 확인하는 스크립트가 있는 경우)
--with-colons
귀하의 스크립팅 기본 설정에 따라 이를 사용하는 방법과 사용하지 않고 수행하는 방법을 제공했습니다 . 다음 명령은 목적이 있습니다원하지 않는다이를 수행하기 전에 지문을 확인하는 스크립트 가능한 방법이므로 키를 키링으로 가져옵니다.
약식 키 ID를 얻는 방법
단축 키 ID 형식( --show-keys
및--with-colons
):
gpg --show-keys --with-colons keyfile.key | awk -F':' '$1=="pub"{print $5}'
단축 키 ID 형식(사용--list-packets
):
gpg --list-packets keyfile.key | awk '$1=="keyid:"{print$2}'
긴 형식의 키 ID를 얻는 방법
긴 키 ID 형식( using --show-keys
및--with-colons
):
gpg --show-keys --with-colons keyfile.key | awk -F':' '$1=="fpr"{print $10}'
긴 키 ID 형식(사용됨 --show-keys
):
gpg --show-keys keyfile.key | sed -nr 's/^([ ]+)([0-9A-Z]{40}$)/\2/p'