Обновить ключ APT GPG вместо марионетки

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)?

2
задан 1 August 2018 в 12:48
3 ответа

Не косметическое решение, но у меня работает следующее:

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:'",
}
2
ответ дан 3 December 2019 в 09:15

Обновление ключа 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 бита. Они тривиально подвержены конфликтам, что также является потенциально серьезной проблемой.

Если вы хотите иметь дело с криптографически стойким идентификатором ключа, вы должны использовать полный отпечаток. Никогда не следует полагаться на короткий или даже длинный идентификатор ключа. [...]

Ссылка и дополнительная информация об этом.

1
ответ дан 3 December 2019 в 09:15

Это то, что мы начали использовать (спасибо 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

3
ответ дан 3 December 2019 в 09:15

Теги

Похожие вопросы