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