Рейтинг:0

Невозможно импортировать ключи GPG через apt-key

флаг ug

Я пытаюсь установить моно на свой сервер Ubuntu 20.04.

Я следовал официальным инструкциям по установке: https://www.mono-project.com/download/stable/

При выполнении:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF

возникает следующая ошибка:

Выполнение: /tmp/apt-key-gpghome.l2rhGqvMmi/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
gpg: ошибка получения сервера ключей: нет такого файла или каталога

В подобных вопросах я увидел, что из бегущей строки можно извлечь больше информации. Итак, вот вывод для strace. Мне пришлось вырезать часть промежуточного вывода, чтобы соответствовать лимиту символов поста:

execve("/usr/bin/apt-key", ["apt-key", "adv", "--keyserver", "hkp://keyserver.ubuntu.com:80", "--recv-keys ", "3FA7E0328081BFF6A14DA29AA6A19B38"...], 0x7ffc2afa5c18 /* 13 переменных */) = 0
брк(НОЛЬ) = 0x55e6a789c000
arch_prctl(0x3001 /* ARCH_??? */, 0x7ffc1557cd50) = -1 EINVAL (недопустимый аргумент)
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (Нет такого файла или каталога)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=63853, ...}) = 0
mmap(NULL, 63853, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f1cd10ad000
закрыть (3) = 0
[...]
read(3, "/etc/apt/trusted.gpg.d/ubuntu-ke"..., 128) = 55
читать(3, "", 128) = 0
закрыть (3) = 0
ожидание4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 19223
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=19223, si_uid=0, si_status=0, si_utime=0, si_stime=0} ---
rt_sigreturn({маска=[]}) = 19223
openat(AT_FDCWD, "/tmp/apt-key-gpghome.nBHDrgCJ0q/pubring.gpg", O_WRONLY|O_CREAT|O_APPEND, 0666) = 3
fcntl(1, F_DUPFD, 10) = 11
закрыть (1) = 0
fcntl(11, F_SETFD, FD_CLOEXEC) = 0
дубликат2(3, 1) = 1
близко (3) = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f1cd10ac850) = 19224
ожидание4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 19224
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=19224, si_uid=0, si_status=0, si_utime=0, si_stime=0} ---
rt_sigreturn({маска=[]}) = 19224
дубликат2(11, 1) = 1
закрыть(11) = 0
wait4(-1, 0x7ffc1557bfac, WNOHANG, NULL) = -1 ECHILD (нет дочерних процессов)
faccessat(AT_FDCWD, "/tmp/apt-key-gpghome.nBHDrgCJ0q/pubring.gpg", R_OK) = 0
stat("/usr/local/sbin/cp", 0x7ffc1557c600) = -1 ENOENT (Нет такого файла или каталога)
stat("/usr/local/bin/cp", 0x7ffc1557c600) = -1 ENOENT (Нет такого файла или каталога)
stat("/usr/sbin/cp", 0x7ffc1557c600) = -1 ENOENT (Нет такого файла или каталога)
stat("/usr/bin/cp", {st_mode=S_IFREG|0755, st_size=153976, ...}) = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f1cd10ac850) = 19225
ожидание4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 19225
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=19225, si_uid=0, si_status=0, si_utime=0, si_stime=0} ---
rt_sigreturn({маска=[]}) = 19225
труба ([3, 4]) = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f1cd10ac850) = 19226
близко (4) = 0
read(3, "/tmp/apt-key-gpghome.nBHDrgCJ0q/"..., 128) = 41
читать(3, "", 128) = 0
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=19226, si_uid=0, si_status=0, si_utime=0, si_stime=0} ---
rt_sigreturn({маска=[]}) = 0
близко (3) = 0
ожидание4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 19226
труба ([3, 4]) = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f1cd10ac850) = 19229
близко (4) = 0
read(3, "/tmp/apt-key-gpghome.nBHDrgCJ0q/"..., 128) = 44
читать(3, "", 128) = 0
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=19229, si_uid=0, si_status=0, si_utime=0, si_stime=0} ---
rt_sigreturn({маска=[]}) = 0
близко (3) = 0
ожидание4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 19229
openat(AT_FDCWD, "/tmp/apt-key-gpghome.nBHDrgCJ0q/gpg.1.sh", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
fcntl(1, F_DUPFD, 10) = 11
закрыть (1) = 0
fcntl(11, F_SETFD, FD_CLOEXEC) = 0
дубликат2(3, 1) = 1
близко (3) = 0
write(1, "#!/bin/sh\nexec sh '/tmp/apt-key-"..., 122) = 122
дубликат2(11, 1) = 1
закрыть(11) = 0
write(1, "Выполнение: /tmp/apt-key-gpghome"...., 147Выполнение: /tmp/apt-key-gpghome.nBHDrgCJ0q/gpg.1.sh --keyserver hkp://keyserver.ubuntu. com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
) = 147
stat("/usr/local/sbin/sh", 0x7ffc1557c700) = -1 ENOENT (Нет такого файла или каталога)
stat("/usr/local/bin/sh", 0x7ffc1557c700) = -1 ENOENT (Нет такого файла или каталога)
stat("/usr/sbin/sh", 0x7ffc1557c700) = -1 ENOENT (Нет такого файла или каталога)
stat("/usr/bin/sh", {st_mode=S_IFREG|0755, st_size=129816, ...}) = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f1cd10ac850) = 19232
wait4(-1, gpg: ошибка получения сервера ключей: Нет такого файла или каталога
[{WIFEXITED(s) && WEXITSTATUS(s) == 2}], 0, NULL) = 19232
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=19232, si_uid=0, si_status=2, si_utime=0, si_stime=0} ---
rt_sigreturn({маска=[]}) = 19232
wait4(-1, 0x7ffc1557c59c, WNOHANG, NULL) = -1 ECHILD (нет дочерних процессов)
stat("/tmp/apt-key-gpghome.nBHDrgCJ0q/aptwarnings.log", 0x7ffc1557c4d0) = -1 ENOENT (Нет такого файла или каталога)
faccessat(AT_FDCWD, "gpgconf", X_OK) = -1 ENOENT (Нет такого файла или каталога)
faccessat(AT_FDCWD, "/usr/local/sbin/gpgconf", X_OK) = -1 ENOENT (Нет такого файла или каталога)
faccessat(AT_FDCWD, "/usr/local/bin/gpgconf", X_OK) = -1 ENOENT (Нет такого файла или каталога)
faccessat(AT_FDCWD, "/usr/sbin/gpgconf", X_OK) = -1 ENOENT (Нет такого файла или каталога)
faccessat(AT_FDCWD, "/usr/bin/gpgconf", X_OK) = 0
openat(AT_FDCWD, "/dev/null", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
fcntl(1, F_DUPFD, 10) = 11
закрыть (1) = 0
fcntl(11, F_SETFD, FD_CLOEXEC) = 0
дубликат2(3, 1) = 1
закрыть (3) = 0
fcntl(2, F_DUPFD, 10) = 12
близко (2) = 0
fcntl(12, F_SETFD, FD_CLOEXEC) = 0
дубликат2(1, 2) = 2
stat("/usr/local/sbin/gpgconf", 0x7ffc1557c660) = -1 ENOENT (Нет такого файла или каталога)
stat("/usr/local/bin/gpgconf", 0x7ffc1557c660) = -1 ENOENT (Нет такого файла или каталога)
stat("/usr/sbin/gpgconf", 0x7ffc1557c660) = -1 ENOENT (Нет такого файла или каталога)
stat("/usr/bin/gpgconf", {st_mode=S_IFREG|0755, st_size=178848, ...}) = 0
клон (child_stack = NULL, flags = CLONE_CHILD_CLEARTID | CLONE_CHILD_SETTID | SIGCHLD, child_tidptr = 0x7f1cd10ac850) = 19237
ожидание4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 19237
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=19237, si_uid=0, si_status=0, si_utime=0, si_stime=0} ---
rt_sigreturn({маска=[]}) = 19237
дубликат2(11, 1) = 1
закрыть(11) = 0
дубликат2(12, 2) = 2
закрыть(12) = 0
clone(child_stack=NULL, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f1cd10ac850) = 19242
ожидание4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 19242
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=19242, si_uid=0, si_status=0, si_utime=0, si_stime=0} ---
rt_sigreturn({маска=[]}) = 19242
wait4(-1, 0x7ffc1557c83c, WNOHANG, NULL) = -1 ECHILD (нет дочерних процессов)
выход_группа (2) = ?
+++ вышел с 2 +++

Буду признателен за любую помощь. Если мне нужно предоставить дополнительную информацию, я буду рад это сделать. Спасибо.

Рейтинг:0
флаг ug

Я решил проблему.

apt-key adv, по сути говорит GnuPG загрузить ключи с сервера. Сначала я подумал, что ключей не существует, так как поиск через веб интерфейс оказался отрицательным. Но при предварительном 0x к ключу, он найден. проблема известен.

Тогда я прямо позвонил gpg скачать ключи через:

gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF

Это также не удалось, с тем же сообщением об ошибке. Затем я нашел Ветка Arch Linux BBS, в котором описана та же проблема. Их решение состояло в том, чтобы исправить /etc/resolve.conf файл. И действительно, мне это тоже помогло (видимо мое systemd-resolved.service был неудачным).

Было бы намного проще, если бы сообщение об ошибке было более полезным. Но, хорошо. Я думаю, это моя вина, что я неправильно настроил DNS.

Ответить или комментировать

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