PGP-ключ репозитория puppet apt истек несколько дней назад
/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)?
Это то, что мы начали использовать (спасибо 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
Это не косметическое решение, но у меня работает следующее:
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:'",
}
Обновление ключа GPG:
Да, это возможно с помощью exec тип ресурса, который «выполняет внешние команды». Чтобы предотвратить exec
от бега каждый раз используйте если только и проверьте / проанализируйте вывод apt-key list
, например через grep
.
Добавление ключа GPG:
В модуль puppetlabs apt обеспечивает apt :: key, который добавляет ключи GPG. Чтобы использовать его, вставьте что-нибудь в свой код в следующие строки (из документации):
apt::key { 'puppetlabs':
id => '47B320EB4C7C375AA9DAE1A01054B7A24BD6EC30',
server => 'pgp.mit.edu',
}
Примечание по безопасности:
Использование коротких идентификаторов ключей представляет собой серьезную проблему безопасности, потенциально делая вас уязвимыми для атак на основе коллизий. Мы рекомендуем вам всегда использовать полные отпечатки пальцев для идентификации ваших ключей GPG. Этот модуль позволяет использовать короткие ключи, но выдает предупреждение системы безопасности, если вы их используете.
Еще немного информации, почему это должно иметь для вас значение:
Короткие идентификаторы ключей OpenPGP, например 0 × 2861A790, имеют длину 32 бита. Было показано, что они легко подделываются другим ключом с тем же идентификатором ключа. Длинные идентификаторы ключей OpenPGP (например, 0xA1E6148633874A3D) имеют длину 64 бита. Они тривиально конфликтуют, что также является потенциально серьезной проблемой.
Если вы хотите иметь дело с криптостойким идентификатором ключа, вам следует использовать полный отпечаток пальца. Никогда не следует полагаться на короткий или даже длинный идентификатор ключа. [...]