apt-key
Systematyczne dodawanie klucza gpg nie powiodło się, odkąd przełączyłem się na Ubuntu 17.04 (wątpię jednak, że jest to bezpośrednio powiązane). Przykład z kluczem repozytorium Spotify :
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys BBEBDCB318AD50EC6865090613B00F1FD2C19886
Executing: /tmp/apt-key-gpghome.wRE6z9GBF8/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys BBEBDCB318AD50EC6865090613B00F1FD2C19886
gpg: keyserver receive failed: No keyserver available
To samo, jeśli usunę hkp://
prefiks.
Kontekst: Używam CNTLM do radzenia sobie z lokalnym korporacyjnym proxy. Zmienne env są ustawione (in /etc/environment
):
$ env | grep 3128
https_proxy=http://localhost:3128
http_proxy=http://localhost:3128
ftp_proxy=http://localhost:3128
/etc/apt/apt.conf
jest skonfigurowany ( apt
polecenia działają poprawnie):
$ cat /etc/apt/apt.conf
Acquire::http::Proxy "http://localhost:3128";
Acquire::https::Proxy "http://localhost:3128";
Acquire::ftp::Proxy "http://localhost:3128";
Wreszcie określony serwer kluczy wydaje się dostępny:
$ curl keyserver.ubuntu.com:80
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>SKS OpenPGP Public Key Server</title>
</head>
<body>
[...]
Co mogę zrobić ? Nie jestem nawet pewien, jak dalej to debugować ...
Rzeczy, które już próbowałem zrobić bez rezultatu:
- uruchom
sudo
z-E
opcją (zachowaj env) - uruchom
apt-key adv
z--keyserver-options http-proxy=http://localhost:3128/
opcją ( źródło ) - uruchomić
$ gpg --list-keys
z jakiegoś powodu ( źródło ) - użyj innego keyserver (
--keyserver pgp.mit.edu
) - usuń
hkp://
część (--keyserver keyserver.ubuntu.com:80
)
Dziwne jest to, że nigdy nie widzę żadnego wpisu „cntlm” /var/log/syslog
podczas działania apt-key
.
http://keyserver.ubuntu.com/
w przeglądarce?curl
wynikach powyżej)Odpowiedzi:
Zwykle masz proxy dla ftp, http i https; Widzę tam hkp: // jako URL; dlatego nie powinien być kierowany przez czysty serwer proxy HTTP, dlatego nie można nawiązać komunikacji.
Użyj tego zamiast:
Jeśli chodzi o aktualizacje systemu, radziłbym na przykład użyć proxy APT
apt-cacher-ng
.Innym sposobem na to jest wyszukiwanie w publicznym interfejsie internetowym za pomocą przeglądarki, na przykład na stacji roboczej, w poszukiwaniu klucza, który chcesz na https://keyserver.ubuntu.com
Otwórz stronę, a otrzymasz formularz. W tym przypadku użyłem „Wyszukiwanego ciągu” „Spotify”; następnie wybierz „Szukaj”; wyświetli listę kilku kluczy.
Wyszukiwanie podpisu / odcisku palca wspomnianego na stronie wyników:
Widzimy, że ten wpis nas interesuje.
Klikamy więc D2C19886 i wyświetlamy stronę z kluczem na https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x13B00F1FD2C19886 .
Przecinasz między wierszem rozpoczynającym się od „----- BEGIN” a wierszem kończącym się na „----- END”, w tym tymi liniami, i wklejasz do pliku, powiedz
spotify.pgp
na docelowym serwerze, który chcesz zaimportować klawisz. (nie wycinaj tego stąd, ponieważ dodałem 4 spacje przed każdą linią podczas formatowania)Na koniec, aby zaimportować klucz na serwer, robisz:
źródło
Oto rozwiązanie, które używa http przez curl zamiast próbować proxy apt-key lub gpg:
Tej metody należy używać zamiast
apt-key
ustawień zmiennych środowiskowych wiersza polecenia lub http_proxy lub https_proxy (które są wyłączone w najnowszych wersjachapt-key
).źródło
możesz podać serwer kluczy jako parametr repozytorium add-apt przez:
Port wychodzący 443 nie byłby blokowany przez korporacyjną zaporę ogniową.
źródło