- Это то, что я получил до сих пор:
#!/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