Как добавить ключ APT для пакетов Microsoft

Вопрос или проблема

Я пытаюсь установить некоторые пакеты из Репозитория 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, выполните следующие шаги:

  1. Установите необходимые утилиты: Убедитесь, что у вас установлены wget, gpg и другие необходимые утилиты. Вы можете установить их с помощью следующей команды:

    sudo apt-get install wget gpg
  2. Загрузите ключ и добавьте его в систему: Используйте команду 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/.

  3. Добавьте репозиторий в вашу систему: После загрузки ключа вам нужно добавить репозиторий 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 указывает на файл с ключом, который вы загрузили.

  4. Обновите список пакетов: После добавления репозитория обновите список пакетов вашей системы:

    sudo apt update
  5. Установка пакетов: Теперь вы можете установить пакеты, например, Visual Studio Code, используя следующую команду:

    sudo apt install code
  6. Проверка на ошибки: Если вы все еще сталкиваетесь с ошибками, связанными с отсутствием ключа (например, 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.

Оцените материал
Добавить комментарий

Капча загружается...