Ошибка ключей archlinux

#
3 года назад

(отредактировано

3 года назад)

wh75er avatar

Темы:

17

Сообщения:

86

Участник с: 25 февраля 2017

Обновил систему после очень долго перерыва через

sudo pacman -Syu

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


==> PGP keys need importing:
 -> CB9...D84, required by: phonon-qt4
==> Import? [Y/n]
:: Importing keys with gpg......
gpg: keyserver receive failed: General error
==> Error: Problem importing keys

Пытался обновить ключи через


sudo pacman-key --refresh-keys
gpg: refreshing 116 keys from hkps://hkps.pool.sks-keyservers.net
gpg: keyserver refresh failed: General error
==> ERROR: A specified local key could not be updated from a keyserver.

Помогите решить проблему

redix

#
3 года назад

redix avatar

Темы:

34

Сообщения:

3432

Участник с: 11 марта 2013

# pacman-key --init
# pacman-key --populate archlinux
# pacman-key --refresh-keys

Добавить ключ

gpg --keyserver keys.gnupg.net --recv-keys ваш_ключ

In Tux We Trust

RusWolf

#
3 года назад

(отредактировано

3 года назад)

RusWolf avatar

Темы:

11

Сообщения:

2466

Участник с: 16 июля 2016

Обновление ключей:
# pacman-key —init
# pacman-key —refresh-keys
# pacman-key —populate archlinux

мля. опоздал :)

redix

#
3 года назад

redix avatar

Темы:

34

Сообщения:

3432

Участник с: 11 марта 2013

Могу уступить первенство. )

In Tux We Trust

RusWolf

#
3 года назад

RusWolf avatar

Темы:

11

Сообщения:

2466

Участник с: 16 июля 2016

redix
Могу уступить первенство. )

не-не, всё должно быть по честному :)

vs220

#
3 года назад

Темы:

22

Сообщения:

8111

Участник с: 16 августа 2009

Зеркала попробуйте обновить на актуальные в /etc/pacman.d/mirrorlist

Список актуальных https://www.archlinux.org/mirrorlist/
Потом

sudo pacman -Syy
sudo  pacman-key --populate archlinux
sudo pacman -Syu

если не поможет смотрите
https://wiki.archlinux.org/index.php/Pacman/Package_signing#Troubleshooting

wh75er

#
3 года назад

wh75er avatar

Темы:

17

Сообщения:

86

Участник с: 25 февраля 2017

redix

# pacman-key --init
# pacman-key --populate archlinux
# pacman-key --refresh-keys

Добавить ключ

gpg --keyserver keys.gnupg.net --recv-keys ваш_ключ

не помогло

sudo pacman-key --init
sudo pacman-key --populate archlinux
==> Appending keys from archlinux.gpg...
==> Locally signing trusted keys in keyring...
  -> Locally signing key D8AFDDA07A5B6EDFA7D8CCDAD6D052345F927843F1C...
  -> Locally signing key DDB867B92AA789C165E43EFA799B729B06A680C281...
  -> Locally signing key 91FFE0700E80619CEB42373235CA88E23E377514E00...
  -> Locally signing key 0E8B644079F592349DFC1DDC3973348882F6AC6A4C2...
  -> Locally signing key AB19265E5D2347D20687D303246BA1DFB64FFF979E7...
==> Importing owner trust values...
==> Disabling revoked keys in keyring...
  -> Disabling key 8F76BEEA0289F9234E1234D3E229C05F946DED983D4366...
  -> Disabling key 63F342395DE2D6398423BBE458F281F2DBB4931985A992...
...
  -> Disabling key D4DE5ABDE2A7223487644EAC7E3566D1A9E70E19DAA50...
  -> Disabling key 44D4A033AC14123601439277397D47EFD567D4C7EA887...
==> Updating trust database...
gpg: next trustdb check due at 2020-05-31

sudo pacman-key --refresh-keys
gpg: refreshing 116 keys from hkps://hkps.pool.sks-keyservers.net
gpg: keyserver refresh failed: General error
==> ERROR: A specified local key could not be updated from a keyserver.

vs220

#
3 года назад

Темы:

22

Сообщения:

8111

Участник с: 16 августа 2009

Зеркала

sudo pacman -Syy
sudo  pacman-key --populate archlinux
sudo pacman -S  archlinux-keyring
sudo pacman-key --refresh-keys --keyserver hkp://pool.sks-keyservers.net
sudo pacman -Syu

?

wh75er

#
3 года назад

wh75er avatar

Темы:

17

Сообщения:

86

Участник с: 25 февраля 2017

vs220
Зеркала

sudo pacman -Syy
sudo  pacman-key --populate archlinux
sudo pacman -S  archlinux-keyring
sudo pacman-key --refresh-keys --keyserver hkp://pool.sks-keyservers.net
sudo pacman -Syu

?

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

Попробовал сделать


sudo pacman -Sc

Не помогло. Сейчас попробую сделать предложенное

vs220

#
3 года назад

Темы:

22

Сообщения:

8111

Участник с: 16 августа 2009

wh75er
но с ключами таже проблема

Обновление идет? Или на ключи ругается?


0

1

здравствуйте,
не получаейтся обновиться, получаю ошибку при обновлении

Будет установлено:  617,69 MiB
Изменение размера:    2,88 MiB

:: Приступить к установке? [Y/n] y
(39/39) проверка ключей                                                                              [############################################################] 100%
загрузка необходимых ключей...
ошибка: key "A6234074498E9CEE" could not be looked up remotely
ошибка: требуемый ключ отсутствует в цепочке ключей
ошибка: не удалось завершить запрос (непредвиденная ошибка)
Обнаружены ошибки, пакеты не были обновлены.

порылся в интернете, нашел это https://bbs.archlinux.org/viewtopic.php?id=193382
Попробовал:

 no-greeting
 no-permission-warning
lock-never
#keyserver hkp://pool.sks-keyservers.net
keyserver hkp://pgp.mit.edu:11371
#keyserver hkp://keyserver.kjsl.com:80
 keyserver-options timeout=10

sudo pacman-key —init && sudo pacman -Syu — ошибка таже…
не знаю что делать…

Today, I deployed a new Arch Linux Container in my Proxmox VE server. When I tried to update the Arch Linux container using «pacman -Syyu» command, I encountered with this error — «error: keyring is not writable. error: required key missing from keyring».

Here is the complete output:

[root@archlinuxct ~]# pacman -Syyu
:: Synchronizing package databases...
 core                                                                155.6 KiB   199 KiB/s 00:01 [########################################################] 100%
 extra                                                              1742.4 KiB  3.22 MiB/s 00:01 [########################################################] 100%
 community                                                             7.3 MiB  3.40 MiB/s 00:02 [########################################################] 100%
:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...

Packages (69) acl-2.3.1-3  archlinux-keyring-20230225-1  audit-3.0.9-2  bash-5.1.016-3  brotli-1.0.9-10  bzip2-1.0.8-5  ca-certificates-mozilla-3.88.1-1
              cryptsetup-2.6.1-1  curl-7.88.1-3  dbus-1.14.6-1  device-mapper-2.03.19-1  e2fsprogs-1.47.0-1  file-5.44-3  filesystem-2023.01.31-1
              findutils-4.9.0-2  gawk-5.2.1-1  gcc-libs-12.2.1-2  glib2-2.74.5-1  glibc-2.37-2  gnutls-3.8.0-1  gpgme-1.18.0-2  grep-3.8-3  gzip-1.12-2
              hwdata-0.367-1  iana-etc-20230105-1  icu-72.1-2  iproute2-6.2.0-2  iptables-1:1.8.9-1  iputils-20221126-1  krb5-1.20.1-1  less-1:608-2
              libarchive-3.6.2-2  libcap-2.67-1  libedit-20210910_3.1-2  libelf-0.188-3  libgcrypt-1.10.1-2  libgpg-error-1.46-2  libksba-1.6.3-1
              libldap-2.6.4-1  libnftnl-1.2.4-1  libnghttp2-1.52.0-1  libnl-3.7.0-3  libpcap-1.10.3-1  libpsl-0.21.2-1  libsasl-2.1.28-4
              libsysprof-capture-3.46.0-4  libtirpc-1.3.3-2  libxcrypt-4.4.33-1  linux-api-headers-6.1.9-1  mpfr-4.2.0-3  nano-7.2-1  ncurses-6.4-1
              openssh-9.2p1-1  openssl-3.0.8-1  pacman-mirrorlist-20230226-1  pciutils-3.9.0-2  pcre2-10.42-2  psmisc-23.6-1  readline-8.2.001-2  sed-4.9-2
              shadow-4.13-2  sqlite-3.41.0-1  systemd-253-1  systemd-libs-253-1  systemd-sysvcompat-253-1  tzdata-2022g-2  xz-5.4.1-1  zlib-1:1.2.13-2
              zstd-1.5.4-1

Total Installed Size:  415.55 MiB
Net Upgrade Size:        2.57 MiB

:: Proceed with installation? [Y/n] y
(69/69) checking keys in keyring                                                                 [########################################################] 100%
warning: Public keyring not found; have you run 'pacman-key --init'?
downloading required keys...
error: keyring is not writable
error: keyring is not writable
error: keyring is not writable
error: keyring is not writable
error: keyring is not writable
error: keyring is not writable
error: keyring is not writable
error: keyring is not writable
error: keyring is not writable
error: keyring is not writable
error: keyring is not writable
error: keyring is not writable
error: keyring is not writable
error: required key missing from keyring
error: failed to commit transaction (unexpected error)
Errors occurred, no packages were upgraded.
[root@archlinuxct ~]# 
Solve - error: required key missing from keyring in Arch Linux
Solve — error: required key missing from keyring in Arch Linux

I tried to install archlinux-keyring package to solve the issue:

# pacman -S archlinux-keyring

But, no luck! I encountered with the same error. After a couple Google searches, I fixed the «error: required key missing from keyring» issue as shown below.

Run the following commands as root user to fix «error: required key missing from keyring« in Arch Linux and its variants like EndeavourOS and Manjaro Linux.

First, remove or reset all the keys installed in your system by removing the /etc/pacman.d/gnupg directory as root user:

# rm -r /etc/pacman.d/gnupg/

Next, run pacman-key --init followed by pacman-key --populate command to initialize the pacman keyring and re-add the default keys.

# pacman-key --init
# pacman-key --populate archlinux
# pacman-key --populate archlinux32

Please note that if you don’t use 32 bit system, you can skip the «pacman-key --populate archlinux32» command.

Next, run the following command to manually update the keys.

# pacman-key --refresh-keys

While doing --refresh-keys, your local key will also be looked up on the remote keyserver, and you will receive a message about it not being found. This is nothing to be concerned about. This will take several minutes to complete, so please be patient!

And then clean the package cache using command:

# pacman -Sc

Finally, update the software repository list and upgrade your Arch Linux by running the following command:

# pacman -Syyu

Now you will be able to upgrade your Arch Linux system without any issues. Hope this helps.

Reference Link:

  • Arch Linux Forum

sk

Senthilkumar Palani (aka SK) is the Founder and Editor in chief of OSTechNix. He is a Linux/Unix enthusiast and FOSS supporter. He lives in Tamilnadu, India.

A couple of days ago I got an additional laptop to take it on meetings.

As it will be used rarely and not as my main laptop – I decided to install Manjaro Linux there instead of usual Arch Linux – to take a look at the Manjaro itself and because don’t want to spend time with Arch configuration on a laptop, which be used even not each day.

After Manjaro installation (well – much easier than Arch, of course) I started the system upgrade, and…:

[setevoy@setevoy-asus-laptop ~]$ sudo pacman -Syu
...
:: Proceed with installation? [Y/n]  
(413/413) checking keys in keyring                                                                                                             [] 100%
downloading required keys...
:: Import PGP key 256E/C7E7849466FE2358343588377258734B41C31549, "David Runge <dvzrv@archlinux.org>", created: 2019-10-01? [Y/n] y
error: key "David Runge <dvzrv@archlinux.org>" could not be imported
error: required key missing from keyring
error: failed to commit transaction (unexpected error)
Errors occurred, no packages were upgraded.

Well… Okay.

The first upgrade on o system with outdated packages, expected issues – no problem at all.

Do not perform the actions described below until you’ll read the actual reason.

Update archlinux-keyring

The first idea was to upgrade the archlinux-keyring util and it will update its keys:

$ sudo pacman -Sy archlinux-keyring
...
warning: archlinux-keyring-20191018-1 is up to date -- reinstalling
resolving dependencies...
looking for conflicting packages...
Packages (1) archlinux-keyring-20191018-1
...
-> Disabling key 44D4A033AC140143927397D47EFD567D4C7EA887...
==> Updating trust database...
gpg: next trustdb check due at 2020-01-22
:: Running post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...

But this didn’t help.

pacman-key --refresh-keys

Okay, let’s try update keys directly in the pacman-key‘s database:

[setevoy@setevoy-asus-laptop ~]$ sudo pacman-key --refresh-keys
...
gpg: Total number processed: 133
gpg:              unchanged: 66
gpg:           new user IDs: 3
gpg:            new subkeys: 1
gpg:         new signatures: 1172
...
gpg: next trustdb check due at 2020-01-22

Nah, still something is wrong here:

[setevoy@setevoy-asus-laptop ~]$ pacman-key --list-sigs | grep Runge
gpg: Note: trustdb not writable
gpg: key E5BB298470AD4E41 was created 53 days in the future (time warp or clock problem)
gpg: key 6D42BDD116E0068F was created 11 days in the future (time warp or clock problem)
gpg: key 6D42BDD116E0068F was created 11 days in the future (time warp or clock problem)
gpg: key E5BB298470AD4E41 was created 53 days in the future (time warp or clock problem)
sig          54C28F4FF5A1A949 2014-10-06  David Runge <dave@sleepmap.de>
uid          [  full  ] David Runge <dave@sleepmap.de>
sig 3        54C28F4FF5A1A949 2017-05-07  David Runge <dave@sleepmap.de>
sig 3        54C28F4FF5A1A949 2015-01-04  David Runge <dave@sleepmap.de>
uid           [  full  ] David Runge <dave@c-base.org>
sig 3        54C28F4FF5A1A949 2017-05-07  David Runge <dave@sleepmap.de>
sig 3        54C28F4FF5A1A949 2015-10-20  David Runge <dave@sleepmap.de>
uid           [  full  ] David Runge <runge@pool.math.tu-berlin.de>
sig 3        54C28F4FF5A1A949 2017-05-07  David Runge <dave@sleepmap.de>
sig 3        54C28F4FF5A1A949 2014-10-03  David Runge <dave@sleepmap.de>
uid           [  full  ] David Runge <david.runge@campus.tu-berlin.de>
sig 3        54C28F4FF5A1A949 2017-05-07  David Runge <dave@sleepmap.de>
sig 3        54C28F4FF5A1A949 2014-10-03  David Runge <dave@sleepmap.de>
sig          54C28F4FF5A1A949 2017-05-07  David Runge <dave@sleepmap.de>

At least – the developer’s mailbox is not the same as in the error.

there is a hint, but I didn’t notice it

Removing /etc/pacman.d/gnupg

The next thing I did a try – to fully drop (backup, of course, not just delete) pacman‘s GPG database to re-initial it from scratch:

[setevoy@setevoy-asus-laptop ~]$ ls -l /etc/pacman.d/gnupg
total 6276
drwx------ 2 root root    4096 жов 21  2017 crls.d
-rw-r--r-- 1 root root      17 лис  8  2018 gpg-agent.conf
-rw-r--r-- 1 root root     114 жов 24  2015 gpg.conf
drwx------ 2 root root    4096 жов 24  2015 openpgp-revocs.d
...
-rw-r--r-- 1 root root   18920 сер 18 12:28 trustdb.gpg

Move it to backups:

[setevoy@setevoy-asus-laptop ~]$ mkdir ~/Backups
[setevoy@setevoy-asus-laptop ~]$ sudo mv /etc/pacman.d/gnupg Backups/

Run initialization:

[setevoy@setevoy-asus-laptop ~]$ sudo pacman-key --init
gpg: /etc/pacman.d/gnupg/trustdb.gpg: trustdb created
gpg: no ultimately trusted keys found
gpg: starting migration from earlier GnuPG versions
gpg: porting secret keys from '/etc/pacman.d/gnupg/secring.gpg' to gpg-agent
gpg: migration succeeded
gpg: Generating pacman keyring master key...
gpg: key FBADB7D2586D4A2F marked as ultimately trusted
gpg: directory '/etc/pacman.d/gnupg/openpgp-revocs.d' created
gpg: revocation certificate stored as '/etc/pacman.d/gnupg/openpgp-revocs.d/7F47A1EC7C894F56DD6F9E18FBADB7D2586D4A2F.rev'
gpg: Done
==> Updating trust database...
gpg: marginals needed: 3  completes needed: 1  trust model: pgp
gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u

Get keys:

[setevoy@setevoy-asus-laptop ~]$ sudo pacman-key --populate
==> Appending keys from archlinux.gpg...
...

Let’s even update them:

[setevoy@setevoy-asus-laptop ~]$ sudo pacman-key --refresh-keys
gpg: refreshing 132 keys from hkps://hkps.pool.sks-keyservers.net
...

Run the OS upgrade again:

[setevoy@setevoy-asus-laptop ~]$ sudo pacman -Syu
...
downloading required keys...
:: Import PGP key 256E/C7E7849466FE2358343588377258734B41C31549, "David Runge <dvzrv@archlinux.org>", created: 2019-10-01? [Y/n]
error: key "David Runge <dvzrv@archlinux.org>" could not be imported
error: required key missing from keyring
error: failed to commit transaction (unexpected error)
Errors occurred, no packages were upgraded.

sd78dfv:?%67sdc!!!

pacman-key --recv-keys – a direct key’s import

Then I went to look for the key directly in the https://www.archlinux.org/master-keys database:

| David Runge | 0x41C31549 | Yes |

And try to import it directly:

[setevoy-asus-laptop setevoy]# pacman-key --recv-keys dvzrv@archlinux.org
gpg: key E5BB298470AD4E41 was created 53 days in the future (time warp or clock problem)
gpg: key 7258734B41C31549: 2 duplicate signatures removed
gpg: key 7258734B41C31549: 4 signatures not checked due to missing keys
gpg: key 7258734B41C31549: 2 signatures reordered
gpg: key 7258734B41C31549 was created 44 days in the future (time warp or clock problem)
gpg: key 7258734B41C31549 was created 44 days in the future (time warp or clock problem)
gpg: key 7258734B41C31549 was created 44 days in the future (time warp or clock problem)
gpg: key 7258734B41C31549 was created 44 days in the future (time warp or clock problem)
gpg: key 7258734B41C31549: no valid user IDs
gpg: this may be caused by a missing self-signature
gpg: Total number processed: 1
gpg:           w/o user IDs: 1
==> ERROR: Remote key not fetched correctly from keyserver.

Eeerrr….

gpg: key 7258734B41C31549 was created 44 days in the future (time warp or clock problem)

44 days in the future – WHAT?

The real cause and solution

Check the date on the operating system now:

[setevoy-asus-laptop setevoy]# date
sun, 18 серпня 2019 12:47:28 +0300

And by using hwclock to heck hardware’s time settings:

[setevoy-asus-laptop setevoy]# hwclock --show
2019-08-18 12:47:55.575491+03:00
Set the real time at this moment:
[setevoy-asus-laptop setevoy]# timedatectl set-time "2019-11-24 09:56:00"
[setevoy-asus-laptop setevoy]# hwclock --show
2019-11-24 09:56:03.404766+02:00

Repeat upgrade:

[setevoy@setevoy-asus-laptop ~]$ sudo pacman -Syu
...
(413/413) checking keys in keyring                                                                                                             [] 100%
downloading required keys...
:: Import PGP key 256E/C7E7849466FE2358343588377258734B41C31549, "David Runge <dvzrv@archlinux.org>", created: 2019-10-01? [Y/n]
(413/413) checking package integrity
...

And everything is working now.

Done.

Similar posts

  • 05/08/2017 Arch Linux: keyserver receive failed: No keyserver available и ручной импорт ключа
  • 05/06/2017 Arch Linux: запускаем Diablo 2
  • 03/29/2017 Arch: Skype – звук и микрофон
  • 03/16/2017 Arch: апплет батареи для ноутбука

Состояние перевода: На этой странице представлен перевод статьи pacman/Package signing. Дата последней синхронизации: 12 июля 2021. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Для определения подлинности пакетов pacman использует ключи GnuPG и сеть доверия. Действующие мастер-ключи Arch Linux можно найти здесь. Ключи разработчиков и доверенных пользователей, которыми они подписывают свои пакеты, должны быть подписаны минимум тремя мастер-ключами. У каждого пользователя также есть свой уникальный PGP-ключ, сгенерированный при настройке утилиты pacman-key. Сеть доверия связывает ключи пользователей и мастер-ключи.

Примеры сетей доверия:

  • Пользовательские пакеты: обычный пользователь создаёт пакет и подписывает его своим локальным ключом.
  • Неофициальные пакеты: разработчик создаёт пакет и подписывает его ключом разработчика; обычный пользователь подписывает ключ разработчика локальным ключом.
  • Официальные пакеты: разработчик создаёт пакет и подписывает его ключом разработчика, подписанным мастер-ключами Arch Linux; обычный пользователь подписывает локальным ключом мастер-ключ и доверяет последнему поручиться за разработчика.

Примечание: Протокол HKP использует TCP-порт 11371. Утилите pacman-key нужен этот порт для скачивания подписанных ключей с серверов.

Настройка

Настройка pacman

Опция SigLevel в файле /etc/pacman.conf определяет необходимый для установки пакета уровень доверия. Подробную информацию о SigLevel можно найти в руководстве pacman.conf(5) § PACKAGE AND DATABASE SIGNATURE CHECKING и в комментариях в самом файле. Можно настроить проверку подписи как глобально, так для каждого репозитория в отдельности. Если задать SigLevel глобально в разделе [options], то абсолютно все пакеты должны быть подписаны. Пакеты, которые вы собрали сами, необходимо подписывать с помощью утилиты makepkg.

Примечание: В настоящее время все официальные пакеты подписаны, но подписывание баз данных на ноябрь 2018 не завершено. Если в параметре SigLevel задано значение Required, необходимо также указать и DatabaseOptional.

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

/etc/pacman.conf
SigLevel = Required DatabaseOptional

Параметр TrustedOnly используется в pacman по умолчанию, то есть настройка ниже аналогична предыдущей:

SigLevel = Required DatabaseOptional TrustedOnly

То же самое можно задать и для отдельного репозитория далее в файле конфигурации:

[core]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

Здесь явно задаётся проверка подписи для пакетов из этого репозитория, но подпись базы данных не проверяется. Если задать здесь значение Optional, то для этого репозитория глобальное значение Required станет недействительно.

Важно: SigLevel TrustAll даёт системе указание считать все ключи доверенными. Эта значение используется только для целей отладки. Для официальных репозиториев необходимо использовать значение TrustedOnly.

Инициализация связки ключей

Для инициализации связки ключей pacman выполните:

# pacman-key --init

Для инициализации необходима энтропия. Чтобы сгенерировать больше энтропии, активно двигайте мышью, нажимайте случайные клавиши или выполняейте действия, связанные с диском (например, запустите в другой консоли ls -R /, find / -name foo или dd if=/dev/sda8 of=/dev/tty7). Если энтропия системы недостаточна, этот этап может занять часы; активная генерация энтропии ускорит процесс.

Генерируемая последовательность случайных чисел используется для создания связки ключей (/etc/pacman.d/gnupg) и GPG-ключа вашей системы.

Примечание: Если вы запускаете pacman-key --init на компьютере, который не генерирует много энтропии (например, на удалённом сервере), создание ключа может занять очень много времени. Для выработки псевдоэнтропии установите утилиты haveged или rng-tools и запустите соответствующую службу перед командой pacman-key --init.

Управление связкой ключей

Проверка мастер-ключей

Первоначальная настройка ключей выполняется командой:

# pacman-key --populate archlinux

При появлении запроса необходимо проверить подлинность мастер-ключей, поскольку они используются для подписи всех пакетов совместно с ключами разработчиков.

PGP-ключи довольно велики (2048 бит или больше), что делает их неудобными для восприятия людьми. Поэтому на основе ключа вычисляется 40-разрядная шестнадцатеричная хэш-сумма, по которой можно проверить его подлинность. Также нужно помнить, что последние восемь цифр хэш-суммы часто используют как имя или (короткий) ID ключа, а последние шестнадцать — как длинный ID ключа.

Добавление ключей разработчика

Ключи официальных разработчиков и доверенных пользователей подписываются мастер-ключами, так что вам не нужно использовать pacman-key, чтобы подписывать их самостоятельно. Когда pacman встречает в подписи пакета ключ, который не удаётся распознать, то предлагает скачать его с сервера ключей, указанного в параметре keyserver в файле /etc/pacman.d/gnupg/gpg.conf или в опции --keyserver командной строки. Перечень серверов ключей можно найти в Википедии.

Ключ разработчика нужно скачать всего единожды, после этого он будет использоваться для проверки любого пакета от этого разработчика.

Примечание: Пакет archlinux-keyring, являющийся зависимостью для pacman, содержит самые свежие на момент последнего обновления ключи. При необходимости ключи можно также обновить вручную командой pacman-key --refresh-keys с правами root. При выполнении этой команды pacman-key попытается найти на сервере ключей также и ваш локальный ключ, после чего выдаст сообщение, что ключ не найден — это нормально.

Добавление неофициальных ключей

Этим способом можно добавить в связку ключей pacman свой ключ или включить подписанный неофициальный репозиторий.

В первую очередь получите у владельца ключа его ID (keyid). Добавьте полученный ключ в связку:

  1. Если ключ находится на сервере ключей, импортируйте его командой:
    # pacman-key --recv-keys keyid
  2. Если у вас есть ссылка на файл ключа, скачайте его и выполните:
    # pacman-key --add /путь/к/скачанному/файлу/ключа

Всегда старайтесь проверять отпечаток — как мастер-ключей, так любых других ключей, которые вы собираетесь подписать:

# pacman-key --finger keyid

Наконец, подпишите импортированный ключ локально:

# pacman-key --lsign-key keyid

Теперь этот ключ будет считаться доверенным.

Отладка при помощи gpg

При отладке доступ к связке ключей pacman можно получить напрямую с помощью gpg, например:

# gpg -- homedir /etc/pacman.d/gnupg --list-keys

Решение проблем

error: signature from xxx is invalid

Важно: Работа pacman-key зависит от настроек системного времени. Если системные часы неверны, при обновлении вы получите следующую ошибку:

error: PackageName: signature from "User <email@archlinux.org>" is invalid
error: failed to commit transaction (invalid or corrupted package (PGP signature))
Errors occured, no packages were upgraded.

Эта ошибка связана с gpg. Она означает, что пакет на диске не сооветствует пакету, который был подписан его сопроводителем. Выяснить причину может быть непросто, но в большинстве случаев удаление файла и скачивание его заново решает проблему. И в любом случае, такое сообщение об ошибке свидетельствует о проблеме с gpg и ключами, которые используются для подписывания пакетов.

Ниже приведены три возможных решения. Если вы не уверены, что выбрать, попросите о помощи на форуме.

Удаление старых версий пакетов

Если постоянно возникает проблема с одним и тем же пакетом и вы уверены, что дело не в pacman-key, попробуйте удалить плохой пакет из кэша командой rm /var/cache/pacman/pkg/плохой_пакет* и скачайте его заново.

Удаление пакета из кэша может помочь при ошибке error: linux: signature from "<Some.Person@example.com>" is invalid, произошедшей при обновлении. Такое сообщение не обязательно является свидетельством атаки «человек-посередине» — возможно, пакет просто был повреждён при скачивании.

Сброс ключей

Для сброса всех установленных в системе ключей необходимо удалить каталог /etc/pacman.d/gnupg. После этого выполните команды pacman-key --init и pacman-key --populate archlinux, чтобы добавить базовый набор ключей заново.

Отключение проверки подписи

Важно: Используйте с осторожностью. Отключение проверки подписи приведёт к тому, что pacman будет без возражений устанавливать любые пакеты, в том числе и недоверенные.

Если подписи пакетов вас не интересуют, можно полностью отключить их проверку. Отредактируйте файл /etc/pacman.conf, раскомментировав следующую строку в разделе [options]:

SigLevel = Never

Также необходимо закомментировать все параметры SigLevel в настройках репозиториев, потому что они имеют приоритет над глобальными настройками. В результате подпись пакетов проверяться не будет, как это было в pacman до четвертой версии. В этом случае устанавливать связку ключей при помощи pacman-key не нужно. Позже при необходимости можно будет включить проверку подписи пакетов обратно.

Не удаётся импортировать ключи

Возможные причины:

  • Устаревший пакет archlinux-keyring;
  • Неправильные настройки даты и времени;
  • Интернет-провайдер блокирует порт, используемый для импорта PGP-ключей;
  • Кэш pacman содержит неподписанные пакеты, оставшиеся с предыдущих попыток;
  • Демон dirmngr не был правильно настроен;
  • Вы давно не обновлялись и gpg/pacman не справились с обновлением.

Давно не обновлявшийся пакет archlinux-keyring может привести к проблемам при синхронизации обновлений.

Ниже приведено несколько возможных решений.

Обновление системы

Прежде всего попробуйте обновить систему.

Смена сервера ключей

Если вы предполагаете, что проблема связана с сервером ключей, то можно попробовать переключиться на сервер ключей Ubuntu. Отредактируйте файл /etc/pacman.d/gnupg/gpg.conf, изменив значение keyserver:

keyserver hkp://keyserver.ubuntu.com

Удаление кэшированных пакетов

Возможно, кэш pacman в каталоге /var/cache/pacman/pkg/ содержит неподписанные пакеты. Очистите кеш вручную:

# pacman -Sc

что удалит все пакеты в кэше, которые не были установлены.

Не удаётся опознать подпись пакета

Иногда при выполнении pacman -Syu вы можете столкнуться со следующей ошибкой:

error: название_пакета: signature from "создатель_пакета" is unknown trust

Такое происходит, когда ключ создателя пакета отсутствует в локальной базе данных pacman-key или не является доверенным. Pacman не всегда имеет возможность проверить, был ли ключ скачан и является ли он доверенным, перед тем как продолжить обновление. Также возможно, что срок действия ключа истёк.

Возможные решения:

  • обновить ключи командой pacman-key --refresh-keys;
  • вручную подписать недоверенный ключ локально;
  • сбросить ключи;
  • временно установить параметр SigLevel в значение TrustAll (не рекомендуется).

Обновление ключей через прокси

Чтобы можно было обновлять ключи через прокси-сервер, задайте параметр honor-http-proxy в файлах /etc/gnupg/dirmngr.conf и /etc/pacman.d/gnupg/dirmngr.conf. Подробнее смотрите GnuPG#Use a keyserver.

Примечание: Если pacman-key был запущен без опции honor-http-proxy и все равно завершился с ошибкой, попробуйте перезагрузиться.

Смотрите также

  • DeveloperWiki:Package Signing Proposal for Pacman
  • Pacman Package Signing – 1: Makepkg and Repo-add
  • Pacman Package Signing – 2: Pacman-key
  • Pacman Package Signing – 3: Pacman
  • Pacman Package Signing – 4: Arch Linux

Понравилась статья? Поделить с друзьями:
  • Ошибка клемма 30 фольксваген пассат б5
  • Ошибка ключевания счета получателя что это убрир
  • Ошибка клемма 30 ваз 2114
  • Ошибка ключевания счета получателя что это такое
  • Ошибка клемма 15 порше кайен