--fetch-keys vs --recv-keys, проверьте, существует ли ключ, используя bash для сторонних ключей, а не из PPA - PullRequest
0 голосов
/ 27 марта 2020
  1. Это то, что я получил до сих пор:
#!/bin/bash

    # google chrome
    if [ -z "$(sudo apt-key list 2> /dev/null | grep "EB4C 1BFD 4F04 2F6D DDCC  EC91 7721 F63B D38B 4796")" ]; then
        sudo apt-key adv --fetch-keys https://dl.google.com/linux/linux_signing_key.pub
    fi
Каким-то образом я заметил, что из этого ключа установлены --fetch-keys
pub   dsa1024 2007-03-08 [SC]
      4CCA 1EAF 950C EE4A B839  76DC A040 830F 7FAC 5991
uid           [ unknown] Google, Inc. Linux Package Signing Key <linux-packages-keymaster@google.com>
sub   elg2048 2007-03-08 [E]

pub   rsa4096 2016-04-12 [SC]
      EB4C 1BFD 4F04 2F6D DDCC  EC91 7721 F63B D38B 4796
uid           [ unknown] Google Inc. (Linux Packages Signing Authority) <linux-packages-keymaster@google.com>
sub   rsa4096 2019-07-22 [S] [expires: 2022-07-21]
Это легко сделать с помощью ключей PPA, таких как:
pub   rsa1024 2009-01-26 [SC]
      14AA 40EC 0831 7567 56D7  F66C 4F4E A0AA E526 7A6C
uid           [ unknown] Launchpad PPA for Ondřej Surý

Потому что он добавляет ключ напрямую, не загружая ничего с сайта:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 14AA40EC0831756756D7F66C4F4EA0AAE5267A6C

Так что же на самом деле стоит логика c за этой идеей? Я действительно запутался. Я просто хочу создать скрипт, в котором, если ключ существует, он должен пропустить загрузку. Для PPA --recv-key мне подходит, но из --fetch-keys некоторые добавили 2 ключа, как в примере выше. Поэтому проверка существования с использованием приведенного выше оператора if, на мой взгляд, немного странная. Есть идеи?

Больше информации здесь:

https://askubuntu.com/questions/1176504/how-to-check-if-gpg-key-already-exist-with-bash-then-skip-downloading-adding

...