Как зафиксировать пропавших без вести gpg ключ даже при том, что это должно было быть импортировано?

Я изменяю способ, которым я устанавливаю докера на наборе машин, как указано здесь. Это хорошо работало на одном, все же этот ведет себя странно.

Я импортировал ключ:

sudo apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --homedir /tmp/tmp.uUGtmucAUd --no-auto-check-trustdb --trust-model always --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyring /etc/apt/trusted.gpg.d/atareao-telegram.gpg --keyring /etc/apt/trusted.gpg.d/neovim-ppa-unstable.gpg --keyring /etc/apt/trusted.gpg.d/nilarimogard-webupd8.gpg --keyring /etc/apt/trusted.gpg.d/ondrej-php-7_0.gpg --keyring /etc/apt/trusted.gpg.d/shutter-ppa.gpg --keyring /etc/apt/trusted.gpg.d/trustdb.gpg --keyring /etc/apt/trusted.gpg.d/trusted.gpg --keyring /etc/apt/trusted.gpg.d/vincent-c-ponysay.gpg --keyring /etc/apt/trusted.gpg.d/webupd8team-y-ppa-manager.gpg --keyring /etc/apt/trusted.gpg.d/xorg-edgers-ppa.gpg --keyserver hkp://pgp.mit.edu:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
gpg: requesting key 2C52609D from hkp server pgp.mit.edu
gpg: [don't know]: invalid packet (ctb=01)
gpg: keydb_get_keyblock failed: eof
gpg: key 2C52609D: public key "Docker Release Tool (releasedocker) <docker@docker.com>" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)

и все же sudo apt-get update сбои на недостающем ключе:

w: GPG error: https://apt.dockerproject.org ubuntu-trusty Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY F76221572C52609D

Что я пропускаю?

Я также попробовал в настоящее время предоставляемый ответ, все же после удаления trusted.gpg файла, я не могу добавить ключи с

root@fluttershy:/etc/apt# rm trusted.gpg
root@fluttershy:/etc/apt# apt-key update
gpg: [don't know]: invalid packet (ctb=01)
gpg: keydb_get_keyblock failed: eof
gpg: key 437D05B5: public key "Ubuntu Archive Automatic Signing Key <ftpmaster@ubuntu.com>" imported
gpg: [don't know]: invalid packet (ctb=01)
gpg: keydb_get_keyblock failed: eof
gpg: key FBB75451: public key "Ubuntu CD Image Automatic Signing Key <cdimage@ubuntu.com>" imported
gpg: [don't know]: invalid packet (ctb=01)
gpg: keydb_get_keyblock failed: eof
gpg: key C0B21F32: public key "Ubuntu Archive Automatic Signing Key (2012) <ftpmaster@ubuntu.com>" imported
gpg: [don't know]: invalid packet (ctb=01)
gpg: keydb_get_keyblock failed: eof
gpg: key EFE21092: public key "Ubuntu CD Image Automatic Signing Key (2012) <cdimage@ubuntu.com>" imported
gpg: Total number processed: 4
gpg:               imported: 4  (RSA: 2)
root@fluttershy:/etc/apt#
4
задан 13 April 2017 в 15:25

2 ответа

gpg перестал работать с invalid packet (ctb=01) / keydb_get_keyblock failed: eof. Это обычно означает, что Ваш брелок для ключей GPG поврежден. Самый быстрый способ устранить проблему состоит в том, чтобы удалить его или восстановить его от резервного копирования.

Вот несколько удобных команд для Вас:

  • Для списка всех ключей в настоящее время в брелоках для ключей APT:

    apt-key list
    
  • Для восстановления trusted.gpg от автоматического резервного копирования APT:

    cp /etc/apt/trusted.gpg{~,}
    
  • , Чтобы удалить trusted.gpg и воссоздать его с ключами для архива Ubuntu:

    rm /etc/apt/trusted.gpg
    apt-key update
    

Во всех командах я использовал /etc/apt/trusted.gpg, но остерегаюсь этого могут быть другие брелоки для ключей в /etc/apt/trusted.gpg.d/.

APT использует все брелоки для ключей одновременно, как Вы видите путем исследования вывода:

Executing: gpg [...] \
  --keyring /etc/apt/trusted.gpg \
  --primary-keyring /etc/apt/trusted.gpg \
  --keyring /etc/apt/trusted.gpg.d/atareao-telegram.gpg \
  --keyring /etc/apt/trusted.gpg.d/neovim-ppa-unstable.gpg \
  --keyring /etc/apt/trusted.gpg.d/nilarimogard-webupd8.gpg \
  [...]

повреждение того брелок для ключей делает GPG печальный, и ни одному из брелоков для ключей (даже хорошие) не доверяют. В результате ни один из ключей не рассматривают.

6
ответ дан 1 December 2019 в 08:59

А именно, для брелока для ключей Докера 58118E89F3A912897C070ADBF76221572C52609D добавляют сервер ключей:

sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
4
ответ дан 1 December 2019 в 08:59

Другие вопросы по тегам:

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