Postgresql apt repository gpg anahtarının bir kopyasına sahibim ve dosyada geldiği gibi gpg anahtarının ayrıntılarını görmek istiyorum. Anahtarlığa ithal etmeden bu mümkün müdür?
Postgresql apt repository gpg anahtarının bir kopyasına sahibim ve dosyada geldiği gibi gpg anahtarının ayrıntılarını görmek istiyorum. Anahtarlığa ithal etmeden bu mümkün müdür?
Yanıtlar:
OpenPGP anahtar verilerine bakarken elde edebileceğiniz birkaç ayrıntı düzeyi vardır: temel bir özet, bu özetin makine tarafından okunabilir bir çıktısı veya ayrı ayrı OpenPGP paketlerinin ayrıntılı (ve çok teknik) bir listesi.
Bir OpenPGP anahtar dosyasında kısa bir zirve için, dosya adını STDIN aracılığıyla anahtar verilerde parametre veya boru olarak kolayca iletebilirsiniz. Herhangi bir komut geçilmezse, GnuPG ne yapmak istediğinizi tahmin etmeye çalışır - ve anahtar veriler için bu, anahtara bir özet yazdırır:
$ gpg a4ff2279.asc
gpg: WARNING: no command supplied. Trying to guess what you mean ...
pub rsa8192 2012-12-25 [SC]
0D69E11F12BDBA077B3726AB4E1F799AA4FF2279
uid Jens Erat (born 1988-01-19 in Stuttgart, Germany)
uid Jens Erat <jens.erat@fsfe.org>
uid Jens Erat <jens.erat@uni-konstanz.de>
uid Jens Erat <jabber@jenserat.de>
uid Jens Erat <email@jenserat.de>
uid [jpeg image of size 12899]
sub rsa4096 2012-12-26 [E] [revoked: 2014-03-26]
sub rsa4096 2012-12-26 [S] [revoked: 2014-03-26]
sub rsa2048 2013-01-23 [S] [expires: 2023-01-21]
sub rsa2048 2013-01-23 [E] [expires: 2023-01-21]
sub rsa4096 2014-03-26 [S] [expires: 2020-09-03]
sub rsa4096 2014-03-26 [E] [expires: 2020-09-03]
sub rsa4096 2014-11-22 [A] [revoked: 2016-03-01]
sub rsa4096 2016-02-24 [A] [expires: 2020-02-23]
Ayarına göre --keyid-format 0xlong
, uzun anahtar kimlikleri basılır yerine güvensiz kısa anahtar kimlikleri :
$ gpg a4ff2279.asc
gpg: WARNING: no command supplied. Trying to guess what you mean ...
pub rsa8192/0x4E1F799AA4FF2279 2012-12-25 [SC]
0D69E11F12BDBA077B3726AB4E1F799AA4FF2279
uid Jens Erat (born 1988-01-19 in Stuttgart, Germany)
uid Jens Erat <jens.erat@fsfe.org>
uid Jens Erat <jens.erat@uni-konstanz.de>
uid Jens Erat <jabber@jenserat.de>
uid Jens Erat <email@jenserat.de>
uid [jpeg image of size 12899]
sub rsa4096/0x0F3ED8E6759A536E 2012-12-26 [E] [revoked: 2014-03-26]
sub rsa4096/0x2D6761A7CC85941A 2012-12-26 [S] [revoked: 2014-03-26]
sub rsa2048/0x9FF7E53ACB4BD3EE 2013-01-23 [S] [expires: 2023-01-21]
sub rsa2048/0x5C88F5D83E2554DF 2013-01-23 [E] [expires: 2023-01-21]
sub rsa4096/0x8E78E44DFB1B55E9 2014-03-26 [S] [expires: 2020-09-03]
sub rsa4096/0xCC73B287A4388025 2014-03-26 [E] [expires: 2020-09-03]
sub rsa4096/0x382D23D4C9773A5C 2014-11-22 [A] [revoked: 2016-03-01]
sub rsa4096/0xFF37A70EDCBB4926 2016-02-24 [A] [expires: 2020-02-23]
pub rsa1024/0x7F60B22EA4FF2279 2014-06-16 [SCEA] [revoked: 2016-08-16]
Sağlama -v
-vv
Daha fazla bilgi veya hatta ekleyecektir. Yine de bu durumda paket ayrıntılarını yazdırmayı tercih ederim (aşağıya bakın).
GnuPG ayrıca, kolayca ayrıştırılabilen ve kararlı bir biçime sahip iki nokta üst üste ile ayrılmış bir çıktı biçimine sahiptir. Biçimi GnuPG belgelenmiştir doc/DETAILS
dosyası . Bu biçimi alma seçeneği --with-colons
.
$ gpg --with-colons a4ff2279.asc
gpg: WARNING: no command supplied. Trying to guess what you mean ...
pub:-:8192:1:4E1F799AA4FF2279:1356475387:::-:
uid:::::::::Jens Erat (born 1988-01-19 in Stuttgart, Germany):
uid:::::::::Jens Erat <jens.erat@fsfe.org>:
uid:::::::::Jens Erat <jens.erat@uni-konstanz.de>:
uid:::::::::Jens Erat <jabber@jenserat.de>:
uid:::::::::Jens Erat <email@jenserat.de>:
uat:::::::::1 12921:
sub:-:4096:1:0F3ED8E6759A536E:1356517233:1482747633:::
sub:-:4096:1:2D6761A7CC85941A:1356517456:1482747856:::
sub:-:2048:1:9FF7E53ACB4BD3EE:1358985314:1674345314:::
sub:-:2048:1:5C88F5D83E2554DF:1358985467:1674345467:::
sub:-:4096:1:8E78E44DFB1B55E9:1395870592:1599164118:::
sub:-:4096:1:CC73B287A4388025:1395870720:1599164118:::
sub:-:4096:1:382D23D4C9773A5C:1416680427:1479752427:::
sub:-:4096:1:FF37A70EDCBB4926:1456322829:1582466829:::
GnuPG 2.1.23'ten beri gpg: WARNING: no command supplied. Trying to guess what you mean ...
, --import-options show-only
seçeneği --import
komutla birlikte kullanarak uyarı atlanabilir (bu --with-colons
, elbette olmadan da çalışır ):
$ gpg --with-colons --import-options show-only --import a4ff2279
[snip]
Daha eski sürümler için: uyarı mesajı STDERR üzerinde basılıdır, bu nedenle temel bilgileri uyarıdan ayırmak için STDIN'i okuyabilirsiniz.
Başka paket yüklemeden gpg --list-packets [file]
, dosyanın içerdiği OpenPGP paketleri hakkındaki bilgileri görüntülemek için kullanabilirsiniz .
$ gpg --list-packets a4ff2279.asc
:public key packet:
version 4, algo 1, created 1356475387, expires 0
pkey[0]: [8192 bits]
pkey[1]: [17 bits]
keyid: 4E1F799AA4FF2279
:user ID packet: "Jens Erat (born 1988-01-19 in Stuttgart, Germany)"
:signature packet: algo 1, keyid 4E1F799AA4FF2279
version 4, created 1356516623, md5len 0, sigclass 0x13
digest algo 2, begin of digest 18 46
hashed subpkt 27 len 1 (key flags: 03)
[snip]
pgpdump [file]
Aracı benzer çalışır gpg --list-packets
ve benzer bir çıkış sağlar, ancak okunabilir temsillerin tüm bu algoritma tanımlayıcıları giderir. Muhtemelen tüm ilgili dağıtımlar için mevcuttur (Debian türevlerinde paket, pgpdump
aracın kendisi gibi adlandırılır ).
$ pgpdump a4ff2279.asc
Old: Public Key Packet(tag 6)(1037 bytes)
Ver 4 - new
Public key creation time - Tue Dec 25 23:43:07 CET 2012
Pub alg - RSA Encrypt or Sign(pub 1)
RSA n(8192 bits) - ...
RSA e(17 bits) - ...
Old: User ID Packet(tag 13)(49 bytes)
User ID - Jens Erat (born 1988-01-19 in Stuttgart, Germany)
Old: Signature Packet(tag 2)(1083 bytes)
Ver 4 - new
Sig type - Positive certification of a User ID and Public Key packet(0x13).
Pub alg - RSA Encrypt or Sign(pub 1)
Hash alg - SHA1(hash 2)
Hashed Sub: key flags(sub 27)(1 bytes)
[snip]
--list-packets
?
--list-packets
.
WARNING: no command supplied
stderr'den nasıl kurtulur ? (Bu gpg
, komut dosyalarında düzgün şekilde kullanılmasını engeller . Kripto söz konusu olduğunda tek güvenli yol, stderr'e yapılan herhangi bir çıktıyı ölümcül hata olarak ele almaktır. Ancak bu şekilde, yalnızca stderr'e yazdıran yeni önemli zayıflıklar keşfedildiğinde hazırlıklı olursunuz).
--list-keys
, gibi bir şey gpg --no-default-keyring --keyring=/tmp/<keyfile> --list-keys
. Veya basitçe uyarı mesajını atın, (ba) sh komut dosyalarındaki stderr'i filtrelemek için bir dizi seçenek vardır .
Görünüşe göre basitçe anlaşabilirim:
$gpg <path_to_file>
Bunun gibi çıktılar:
$ gpg /tmp/keys/something.asc
pub 1024D/560C6C26 2014-11-26 Something <something@none.org>
sub 2048g/0C1ACCA6 2014-11-26
Operasyon, özellikle hangi önemli bilgilerin alakalı olduğunu belirtmedi. Tek umursadığım çıktı bu.
Anahtarın parmak izini doğrulamak ve listelemek için (önce anahtarlığa aktarmadan),
gpg --with-fingerprint <filename>
Düzenleme: Ubuntu 18.04 (gpg 2.2.4) üzerinde parmak izi yukarıdaki komutla gösterilmez. Kullanım --with-subkey-fingerprint
yerine seçeneği
gpg --with-subkey-fingerprint <filename>
gpg --with-fingerprint
parmak izlerini yanımda basmayı bastırıyor. Ubuntu 18.04gpg (GnuPG) 2.1.18
--with-subkey-fingerprint
, Ubuntu 18.04'te çalışması gereken bilgilerle güncelledi
Seçenek --list-packets
, bir dosyadaki pgp verilerini ayrıştırır ve yapısını, çok teknik bir şekilde çıkarır. Bir genel anahtarı ayrıştırırken, kullanıcı kimliklerini ve imzaların anahtar kimliklerini kolayca çıkarabilirsiniz.
Bu komutun yalnızca veri biçimini ayrıştırdığına dikkat edin, imzaların veya benzer şeylerin doğrulanması yoktur.
Bu cevaba rastladığımda, ayrıştırılması kolay bir çıktı elde etmenin bir yolunu arıyordum. Benim için seçenek --with-colons
hile yaptı:
$ gpg --with-colons file
sec::4096:1:AAAAAAAAAAAAAAAA:YYYY-MM-DD::::Name (comment) email
ssb::4096:1:BBBBBBBBBBBBBBBB:YYYY-MM-DD::::
Belgeler burada bulunabilir .
--keyid-format
Kısa veya uzun anahtar kimliğini göstermek için anahtarı da kullanabilirsiniz :
$ gpg2 -n --with-fingerprint --keyid-format=short --show-keys <filename>
bunun gibi çıktılar (PostgreSQL CentOS repo anahtarından örnek):
pub dsa1024/442DF0F8 2008-01-08 [SCA] │
Key fingerprint = 68C9 E2B9 1A37 D136 FE74 D176 1F16 D2E1 442D F0F8 │ honor-keyserver-url
uid PostgreSQL RPM Building Project <pgsqlrpms-hackers@pgfoundry.org> │ When using --refresh-keys, if the key in question has a preferred keyserver URL, then use that
sub elg2048/D43F1AF8 2008-01-08 [E]
pgpdump
( https://www.lirnberger.com/tools/pgpdump/ ), pgp bloklarını incelemek için kullanabileceğiniz bir araçtır.
Kullanıcı dostu değildir ve oldukça tekniktir, ancak,
pgpdump -p test.asc
New: Secret Key Packet(tag 5)(920 bytes)
Ver 4 - new
Public key creation time - Fri May 24 00:33:48 CEST 2019
Pub alg - RSA Encrypt or Sign(pub 1)
RSA n(2048 bits) - ...
RSA e(17 bits) - ...
RSA d(2048 bits) - ...
RSA p(1024 bits) - ...
RSA q(1024 bits) - ...
RSA u(1020 bits) - ...
Checksum - 49 2f
New: User ID Packet(tag 13)(18 bytes)
User ID - test (test) <tset>
New: Signature Packet(tag 2)(287 bytes)
Ver 4 - new
Sig type - Positive certification of a User ID and Public Key packet(0x13).
Pub alg - RSA Encrypt or Sign(pub 1)
Hash alg - SHA256(hash 8)
Hashed Sub: signature creation time(sub 2)(4 bytes)
Time - Fri May 24 00:33:49 CEST 2019
Hashed Sub: issuer key ID(sub 16)(8 bytes)
Key ID - 0x396D5E4A2E92865F
Hashed Sub: key flags(sub 27)(1 bytes)
Flag - This key may be used to certify other keys
Flag - This key may be used to sign data
Hash left 2 bytes - 74 7a
RSA m^d mod n(2048 bits) - ...
-> PKCS-1
maalesef stdin okumuyor: /
pgpdump
okur stdin
. Örneğin, iyi curl -s https://www.theguardian.com/pgp/PublicKeys/Guardian%20Application-Security.pub.txt | pgpdump
çalışıyor.
Anahtar kimliklerini (8 bayt, 16 onaltılık basamak) almak için bu, GPG 1.4.16, 2.1.18 ve 2.2.19'da benim için çalışan komuttur:
gpg --list-packets <key.asc | awk '$1=="keyid:"{print$2}'
Daha fazla bilgi almak için (anahtar kimliğine ek olarak):
gpg --list-packets <key.asc
Daha fazla bilgi almak için:
gpg --list-packets -vvv --debug 0x2 <key.asc
Komuta
gpg --dry-run --import <key.asc
ayrıca 3 sürümün tamamında da çalışır, ancak GPG 1.4.16'da yalnızca kısa (4 bayt, 8 onaltılık basamak) bir anahtar kimliği yazdırır, bu nedenle anahtarları tanımlamak daha az güvenlidir.
Diğer yanıtlar Bazı komutları (örn gpg --show-keys
, gpg --with-fingerprint
, gpg --import --import-options show-only
) GPG birden fazla sürümünü hedeflerken böylece taşınabilir değildir, yukarıdaki 3 GPG versiyonlarının bazı iş yok.