PuppetaptリポジトリのPGPキーが数日前に期限切れになりました
/etc/apt/trusted.gpg.d//puppetlabs-keyring.gpg
----------------------------------------------
pub 4096R/4BD6EC30 2010-07-10 [expired: 2016-07-08]
uid Puppet Labs Release Key (Puppet Labs Release Key)
もちろん、手動で更新することもできます
apt-key adv --recv-keys --keyserver keys.gnupg.net 4BD6EC30
ただし、自動的に実行されるPuppetを介して(たとえば、Puppet aptモジュールを介して)更新できますか?
美容ソリューションではありませんが、次のことが私にとってはうまくいきます:
exec { 'update_apt_key':
command => '/usr/bin/apt-key adv --recv-keys --keyserver keys.gnupg.net 47B320EB4C7C375AA9DAE1A01054B7A24BD6EC30',
onlyif => "/usr/bin/apt-key adv --list-public-keys --with-fingerprint --with-colons | grep -B 1 47B320EB4C7C375AA9DAE1A01054B7A24BD6EC30 | head -n 1 | grep -e '^pub:e:'",
}
これが私たちが使い始めたものです(ありがとう garthk ):
$key = '4BD6EC30'
exec { 'apt-key puppetlabs':
path => '/bin:/usr/bin',
unless => "apt-key list | grep '${key}' | grep -v expired",
command => "apt-key adv --keyserver keyserver.ubuntu.com \
--recv-keys ${key}",
}
Aptモジュール用に開いている チケットでの詳細な議論
GPGキーの更新:
はい、それは「外部コマンドを実行する」 exec リソースタイプを使用して可能です。 exec
が毎回実行されないようにするには、 nless を使用し、たとえばgrep
を介してapt-key list
の出力をチェック/解析します。
GPGキーの追加:
puppetlabs apt module は apt :: key を提供し、GPGキーを追加します。それを使用するには、(ドキュメントから)の行に沿ってコードに何かを入れます:
apt::key { 'puppetlabs':
id => '47B320EB4C7C375AA9DAE1A01054B7A24BD6EC30',
server => 'pgp.mit.edu',
}
セキュリティノート:
短いキーIDを使用すると、重大なセキュリティ問題が発生し、衝突攻撃にさらされる可能性があります。 GPGキーを識別するために、常に完全なフィンガープリントを使用することをお勧めします。このモジュールは短いキーを許可しますが、それらを使用するとセキュリティ警告を発行します。
これがあなたにとって重要である理由のいくつかのより多くの情報:
短いOpenPGP鍵ID、たとえば0×2861A790は32ビット長です。それらは、同じキーIDを持つ別のキーによって簡単になりすまされることが示されています。長いOpenPGP鍵ID(たとえば、0xA1E6148633874A3D)は64ビット長です。それらは簡単に衝突可能であり、これも潜在的に深刻な問題です。
キーの暗号的に強力な識別子を処理する場合は、完全なフィンガープリントを使用する必要があります。短い、または長いキーIDに依存しないでください。 [...]