Вопрос или проблема
Я пытаюсь установить некоторые пакеты из Репозитория APT Microsoft (потому что ненавижу Snap изо всех сил!), но не могу добавить его ключ:
$ curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
OK
Говорит OK, но ключ не работает:
$ sudo apt update
[...]
Err:7 https://packages.microsoft.com/repos/vscode stable InRelease
Подписи не смогли быть проверены, потому что открытый ключ недоступен: NO_PUBKEY EB3E94ADBE1229CF
Чтение списков пакетов... Готово
W: GPG ошибка: https://packages.microsoft.com/repos/vscode stable InRelease: Подписи не смогли быть проверены, потому что открытый ключ недоступен: NO_PUBKEY EB3E94ADBE1229CF
E: Репозиторий 'https://packages.microsoft.com/repos/vscode stable InRelease' не подписан.
N: Обновления из таких репозиториев не могут быть выполнены безопасно, и поэтому отключены по умолчанию.
N: Смотрите справочную страницу apt-secure(8) для деталей создания репозиториев и конфигурации пользователей.
Я также попробовал получить ключ, начиная с идентификатора NO_PUBKEY, напечатанного apt-get:
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EB3E94ADBE1229CF
Выполняется: /tmp/apt-key-gpghome.q9IjlmqKv9/gpg.1.sh --keyserver hkp://keyserver.ubuntu.com:80 --recv EB3E94ADBE1229CF
gpg: ключ EB3E94ADBE1229CF: "Microsoft (подпись релиза) <[email protected]>" не изменился
gpg: Обработано: 1
gpg: неизмененных: 1
Говорит “не изменился”, и на самом деле ничего не меняется.
Если я проверю результат apt-key list
, я вижу, что у всех сторонних ключей есть sub rsa4096
, кроме Microsoft. Является ли это причиной, по которой он не работает?
$ sudo apt-key list
/etc/apt/trusted.gpg
--------------------
pub rsa4096 2017-05-08 [SCEA]
1EDD E2CD FC02 5D17 F6DA 9EC0 ADAE 6AD2 8A8F 901A
uid [ unknown] Sublime HQ Pty Ltd <[email protected]>
sub rsa4096 2017-05-08 [S]
pub rsa4096 2016-04-12 [SC]
EB4C 1BFD 4F04 2F6D DDCC EC91 7721 F63B D38B 4796
uid [ unknown] Google Inc. (Linux Packages Signing Authority) <[email protected]>
sub rsa4096 2019-07-22 [S] [истекает: 2022-07-21]
pub rsa4096 2014-06-13 [SC]
9FD3 B784 BC1C 6FC3 1A8A 0A1C 1655 A0AB 6857 6280
uid [ unknown] NodeSource <[email protected]>
sub rsa4096 2014-06-13 [E]
pub rsa2048 2015-10-28 [SC]
BC52 8686 B50D 79E3 39D3 721C EB3E 94AD BE12 29CF
uid [ unknown] Microsoft (подпись релиза) <[email protected]>
[...]
Как мне решить эту проблему?
Ubuntu 20.04 focal
Не беспокойтесь, сообщение об ошибке оказалось несколько вводящим в заблуждение.
Проблема заключалась в том, что мой файл sources.list (который я взял из инструкций Microsoft) указывал на несуществующий файл ключа:
deb [arch=amd64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/vscode stable main
Я убрал опцию signed-by
из квадратных скобок, и все заработало.
Я выполнил это
wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
и все сработало.
Из https://docs.microsoft.com/en-us/dotnet/core/install/linux-ubuntu. Вы можете ctrl + f
найти это: 22.04 (поток пакетов Microsoft)
и найдете инструкцию от microsoft.
Я столкнулся с этой проблемой, пытаясь установить VSCode в среде Linux ChromeOS, которая, как я понимаю, является вариантом Debian Linux.
Проблема заключалась в том, что хотя загрузка deb-файла и установка прошли успешно, похоже, я пропустил этот шаг в документации (выделено жирным):
Установка пакета .deb автоматически установит репозиторий apt и ключ подписи, чтобы включить автоматическое обновление с помощью пакетного менеджера системы. В качестве альтернативы, репозиторий и ключ также можно установить вручную с помощью следующего скрипта:
sudo apt-get install wget gpg
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg
sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list'
rm -f packages.microsoft.gpg
Затем обновите кэш пакетов и установите пакет с помощью:
sudo apt install apt-transport-https
sudo apt update
sudo apt install code # или code-insiders
Кратко: Попробуйте sudo apt install apt-transport-https
, и поддержка https будет работать сразу, что позволит apt устанавливать из https-источников, как я вижу в /etc/apt/sources.list.d/vscode.list
, это действительно указывает “https://packages.microsoft.com/repos/code stable main” как источник.
Если это не сработает, попробуйте добавить ключевое хранилище Microsoft вручную, подробно описанное в их документации: https://code.visualstudio.com/docs/setup/linux
sudo apt-get install wget gpg
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg
sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list'
rm -f packages.microsoft.gpg
Пожалуйста, попробуйте эти шаги:
apt-key list
sudo apt-key del "Microsoft pub key"
curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/packages.microsoft.gpg
sudo apt update
Этот вопрос старый, но проблема все еще актуальна. Я пытался установить MSSQL 2022 на Ubuntu 20.04 и столкнулся с этой проблемой. По какой-то причине sudo wget https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
не скопировал файл в указанное место, а в текущую папку. Целевой файл был пустым, поэтому я просто скопировал его туда, где он должен быть, и репозиторий был успешно добавлен.
Ответ или решение
Чтобы добавить ключ APT для пакетов Microsoft на Ubuntu, выполните следующие шаги:
-
Установите необходимые утилиты: Убедитесь, что у вас установлены
wget
,gpg
и другие необходимые утилиты. Вы можете установить их с помощью следующей команды:sudo apt-get install wget gpg
-
Загрузите ключ и добавьте его в систему: Используйте команду
wget
для загрузки ключа и сохраните его в стандартном каталоге для ключей APT:wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/microsoft.gpg > /dev/null
Эта команда загрузит ключ, конвертирует его в бинарный формат и сохранит его в директорию
/etc/apt/trusted.gpg.d/
. -
Добавьте репозиторий в вашу систему: После загрузки ключа вам нужно добавить репозиторий Microsoft в список источников APT. Вы можете создать новый файл для репозитория следующим образом:
echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/trusted.gpg.d/microsoft.gpg] https://packages.microsoft.com/repos/vscode stable main" | sudo tee /etc/apt/sources.list.d/vscode.list
Обратите внимание, что строчка
signed-by
указывает на файл с ключом, который вы загрузили. -
Обновите список пакетов: После добавления репозитория обновите список пакетов вашей системы:
sudo apt update
-
Установка пакетов: Теперь вы можете установить пакеты, например, Visual Studio Code, используя следующую команду:
sudo apt install code
-
Проверка на ошибки: Если вы все еще сталкиваетесь с ошибками, связанными с отсутствием ключа (например,
NO_PUBKEY
), убедитесь, что ключ действительно правильно добавлен в систему. Для проверки ключей, установленных в системе, выполните:apt-key list
Это поможет вам убедиться, что ключ Microsoft присутствует в списке.
Если у вас по-прежнему возникают проблемы, убедитесь, что файл /etc/apt/sources.list.d/vscode.list
не содержит ошибок и путь к packages.microsoft.gpg
указан правильно. Примечание: некоторые версии Ubuntu могут требовать конфигурации с использованием apt-key
с параметрами, которые могут отличаться в зависимости от вашей версии операционной системы.
Если вы хотите установить пакеты Microsoft, такие как SQL Server, вы также можете загрузить соответствующий .deb файл напрямую с сайта Microsoft и установить его:
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt update
Следуя этим шагам, вы сможете успешно добавить ключи APT для пакетов Microsoft и установить необходимые приложения на вашем Ubuntu.