파일에서 키를 가져오기 전에 키의 지문을 확인하고 싶습니다. 지시에 따라센토스 위키에서, 나는 다음 명령을 사용합니다
gpg --quiet --with-fingerprint <path of key file>
GnuPG 2.1.16(자체 컴파일) 또는 GnuPG 2.1.17(OpenSUSE Tumbleweed 또는 ArchLinux, command gpg
)을 사용하는 경우 출력에 키가 포함되지 않습니다.
GnuPG 2.1.15(자체 컴파일) 또는 GnuPG 2.1.13(Fedora, command gpg2
)을 사용하는 경우 예상되는 지문이 출력에 포함됩니다.
최신 GnuPG 버전을 사용하여 지문을 얻는 방법은 무엇입니까?
내 테스트에서 얻은 추가 정보는 다음과 같습니다.
- 사용된 키 파일:http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-7
- 산출
gpg --quiet --with-fingerprint ./RPM-GPG-KEY-CentOS-7
- GnuPG 2.1.17 사용:
pub rsa4096 2014-06-23 [SC] uid CentOS-7 Key (CentOS 7 Official Signing Key) <[email protected]>
- GnuPG 2.1.16 사용:
pub rsa4096 2014-06-23 [SC] uid CentOS-7 Key (CentOS 7 Official Signing Key) <[email protected]>
- GnuPG 2.1.13 사용:
pub rsa4096 2014-06-23 [SC] 6341 AB27 53D7 8A78 A7C2 7BB1 24C6 A8A7 F4A8 0EB5 uid CentOS-7 Key (CentOS 7 Official Signing Key) <[email protected]>
- GnuPG 2.1.17 사용:
답변1
이것은 작동합니다(적어도 2.2.4에서는):
gpg --import --import-options show-only ~/schneier.gpg
매뉴얼 페이지에서:
--import-options parameters
import-show
show-only
Show a listing of the key as imported right before it is stored. This
can be combined with the option --dry-run to only look at keys; the
option show-only is a shortcut for this combination. Note that suf‐
fixes like '#' for "sec" and "sbb" lines may or may not be printed.
답변2
바라보다https://unix.stackexchange.com/a/391346/29483. 키 파일을 키링으로 처리하는 것이 나에게는 효과가 없었지만 허용된 답변이 도움이 되었습니다.
cat keyfile.key | gpg --with-colons --import-options import-show --dry-run --import
gpg 2.1.18이 포함된 Debian 9 및 gpg2 2.2.0이 포함된 Fedora 26에서 테스트되었습니다.
$ gpg2 --with-fingerprint --import-options import-show --dry-run --import < linux_signing_key.pub
pub dsa1024 2007-03-08 [SC]
4CCA 1EAF 950C EE4A B839 76DC A040 830F 7FAC 5991
uid Google, Inc. Linux Package Signing Key <[email protected]>
sub elg2048 2007-03-08 [E]
pub rsa4096 2016-04-12 [SC]
EB4C 1BFD 4F04 2F6D DDCC EC91 7721 F63B D38B 4796
uid Google Inc. (Linux Packages Signing Authority) <[email protected]>
sub rsa4096 2016-04-12 [S] [expires: 2019-04-12]
gpg: Total number processed: 2
--with-fingerprint
오래된 것일 수도 있습니다 . 안전하지 않은 단축 키 ID 출력을 중지하도록 GPG2가 수정된 것으로 보입니다.
$ gpg2 --import-options import-show --dry-run --import < linux_signing_key.pub pub dsa1024 2007-03-08 [SC]
4CCA1EAF950CEE4AB83976DCA040830F7FAC5991
4CCA1EAF950CEE4AB83976DCA040830F7FAC5991
uid Google, Inc. Linux Package Signing Key <[email protected]>
sub elg2048 2007-03-08 [E]
pub rsa4096 2016-04-12 [SC]
EB4C1BFD4F042F6DDDCCEC917721F63BD38B4796
EB4C1BFD4F042F6DDDCCEC917721F63BD38B4796
uid Google Inc. (Linux Packages Signing Authority) <[email protected]>
sub rsa4096 2016-04-12 [S] [expires: 2019-04-12]
gpg: Total number processed: 2
불행하게도 나는 기계가 읽을 수 있는 출력을 원 --with-colons
하지만 거기에는 다른 일이 일어나고 있습니다 :-(.
$ gpg --with-colons --with-fingerprint --import-options import-show --dry-run --import < linux_signing_key.pub
gpg: lookup_hashtable failed: Unknown system error
gpg: trustdb: searching trust record failed: Unknown system error
gpg: Error: The trustdb is corrupted.
gpg: You may try to re-create the trustdb using the commands:
gpg: cd ~/.gnupg
gpg: gpg --export-ownertrust > otrust.tmp
gpg: rm trustdb.gpg
gpg: gpg --import-ownertrust < otrust.tmp
gpg: If that does not work, please consult the manual
결국 다음 코드를 사용했습니다.
gpg_show_fingerprints() {
gpg2 --with-fingerprint --import-options import-show --dry-run --import < "$1" >/dev/null 2>&1
if [ "$?" == 2 ]; then
# Usage error. Try the old way.
gpg2 --with-fingerprint "$1"
else
gpg2 --with-fingerprint --import-options import-show --dry-run --import < "$1"
fi
}
gpg_show_fingerprints "$1" |
sed -E -n -e 's/.*(([0-9A-F]{4}[ ]*){10,}).*/\1/ p'
답변3
흥미롭게도 이 --with-fingerprint
옵션을 생략하면 지문이 인쇄되지만 공백 형식은 인쇄되지 않습니다. GPG 버전 2.2.20을 사용합니다.
$ gpg RPM-GPG-KEY-CentOS-7
gpg: WARNING: no command supplied. Trying to guess what you mean ...
pub rsa4096 2014-06-23 [SC]
6341AB2753D78A78A7C27BB124C6A8A7F4A80EB5
uid CentOS-7 Key (CentOS 7 Official Signing Key) <[email protected]>
답변4
gpg --show-keys --fingerprint RPM-GPG-KEY-CentOS-7
pub rsa4096 2014-06-23 [SC]
6341 AB27 53D7 8A78 A7C2 7BB1 24C6 A8A7 F4A8 0EB5
uid CentOS-7 Key (CentOS 7 Official Signing Key) <[email protected]>
GPG 매뉴얼에서 -
--show-keys
This commands takes OpenPGP keys as input and prints information about them
in the same way the command --list-keys does for locally stored key. In ad‐
dition the list options show-unusable-uids, show-unusable-subkeys, show-nota‐
tions and show-policy-urls are also enabled. As usual for automated process‐
ing, this command should be combined with the option --with-colons.
--fingerprint
List all keys (or the specified ones) along with their fingerprints. This is
the same output as --list-keys but with the additional output of a line with
the fingerprint. May also be combined with --check-signatures. If this com‐
mand is given twice, the fingerprints of all secondary keys are listed too.
This command also forces pretty printing of fingerprints if the keyid format
has been set to "none".
--with-fingerprint
Same as the command --fingerprint but changes only the format of the output
and may be used together with another command.
내 GnuPG 버전은2.2.20
인용하다 -