機械可読形式でaptのキーIDとフィンガープリントを取得する


11

40桁のキーフィンガープリントによって特定のキーが存在することを確認するために、キーフィンガープリントを識別子として使用できるように、puppetlabs-aptの問題にパッチを当てようとしています。

キーが存在することを確認するのに問題があり、以下を出力するコマンドが必要です。

  • キーの8桁のID。
  • 鍵の16桁のID。
  • 鍵の40桁のID。

apt-keyこれらの値を1行に1つずつ出力するために使用できるコマンドはありますか?出力を解析して、キーが存在するかどうかを確認できますか?

回答:


21

apt-key adv オプションをGnuPGに直接渡すことができます。

したがって、解析可能な出力を取得するには、次のようなことを行うことができます。

# apt-key adv --list-public-keys --with-fingerprint --with-colons 
⋮
fpr:::::::::126C0D24BD8A2942CC7DF8AC7638D0442B90D010:
pub:-:4096:1:9D6D8F6BC857C906:2014-11-21:2022-11-19::-:Debian Security Archive Automatic Signing Key (8/jessie) <ftpmaster@debian.org>::scSC:
fpr:::::::::D21169141CECD440F2EB8DDA9D6D8F6BC857C906:
⋮

指紋だけに関心があるので(8桁と16桁のIDは指紋の終わりにすぎ| grep ^fprません)、気になる行が表示されるように見えます。


撮影だからfingerprint[-8:](Pythonは)私の8桁のIDになるだろうとfingerpint[-16:]私に16桁のIDを取得するのでしょうか?これらは暗号化されたショートハッシュであると思った愚かな私...
Naftuli Kay 14

2
@NaftuliTzviKayフィンガープリントは、暗号化されたハッシュです。単にハッシュするのではなく、再度ハッシュすることには、セキュリティ上の利点はありません。さらに、8桁とおそらく16桁のものは短すぎて安全ではありません。力ずくで複製キーを生成できます。完全なハッシュのみが合理的に安全です。私のpythonがわからないので、あなたのpythonコードが期待どおりに機能するかどうかコメントできません...しかし、私はそうだと思います。それは最後の8桁または16桁の16進数です。
derobert、2014
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.