web-dev-qa-db-ja.com

署名されていないリポジトリUbuntu 16.04からの強制更新

Debianマルチメディアdeb http://www.deb-multimedia.org jessie mainのUbuntu 16.04で署名なしリポジトリを使用しています

Deb-multimedia-keyringをインストールするには、apt-get update && apt-get install deb-multimedia-keyring -yを実行しています

これはエラーになります

W: GPG error: http://www.deb-multimedia.org jessie InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 5C808C2B65558117
E: The repository 'http://www.deb-multimedia.org jessie InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

前もって感謝します

59
Shan

次のオプションを使用して、いくつかの重要な保護手段をバイパスできます。

--allow-unauthenticated

Apt-getのmanページから:

--allow-unauthenticated
    Ignore if packages can't be authenticated and don't Prompt about
    it. This can be useful while working with local repositories, but
    is a huge security risk if data authenticity isn't ensured in
    another way by the user itself. The usage of the Trusted option for
    sources.list(5) entries should usually be preferred over this
    global override. Configuration Item:
    APT::Get::AllowUnauthenticated.

ただし、このオプションをより広く使用する場合は、少し注意してください。protectコンピュータではなくlimit自由のための安全対策が講じられています...

38
andrew.46

sources.listでオプションを設定できます:

deb [trusted=yes] http://www.deb-multimedia.org jessie main

信頼できるオプションは、GPGチェックをオフにするものです。詳細については、man 5 sources.listを参照してください。

Ps:source.list/etc/apt/sources.listにあります

56
Prathu Baronia

別の一般的なソリューションは

Sudo apt-key adv --keyserver pgp.mit.edu --recv-keys 5C808C2B65558117

注:このリポジトリを使用してソリューションをテストしたことはありませんが、Skypeリポジトリを使用してテストしたため、正常に機能しました。

ケースに固有の別のソリューションは、キーをインストールすることです

wget http://www.deb-multimedia.org/pool/main/d/deb-multimedia-keyring/deb-multimedia-keyring_2012.05.05_all.deb -O deb-multimedia-keyring.deb
Sudo dpkg -i multimedia-keyring_all.deb

ここ の完全なウォークスルーで説明されているように

8

キーをパッケージ化したリポジトリからパッケージを取得してリポジトリ内に含めようとする場合、dpkgを使用してキー/キーリングパッケージをダウンロードしてインストールするのは非常に面倒であり、そうするのは非常に困難です。簡単にスクリプト化および反復可能な方法で。

キーサーバーからキーをインストールできる場合(apt-key advを使用した別の回答で推奨)、またはhttpsを介して信頼できるソースからダウンロードし、apt-keyを使用してインストールできる場合(たとえばwget https://trusted.key.site/my-trusted-key.gpg | Sudo apt-key add -)、以下のスクリプトはお勧めしません他の方法はありません、これを使用できます。

echo "deb http://your.repo.domain/repository/ $(lsb_release -c -s) universe" | Sudo tee /etc/apt/sources.list.d/your-repo-name.list

Sudo apt -o Acquire::AllowInsecureRepositories=true \
-o Acquire::AllowDowngradeToInsecureRepositories=true \
update

## if the 'apt update' above fails it is likely due to previously
## having the GPG key and repository on the system, you can clean
## out the old lists with `Sudo rm /var/lib/apt/lists/your.repo.domain*`

apt-get -o APT::Get::AllowUnauthenticated=true install repo-keyring-pkgname

## If you ever run `Sudo apt-key del your-repos-keyID`
## you may have to `Sudo apt remove --purge repo-keyring-pkgname`
## Update should run without the GPG warnings now that the key is installed

apt-get update
apt-get install somepkg-from-repo

Sur5rリポジトリのi3がこれを行うため、元々これをまとめましたが、キーがkeyserver.ubuntu.comリストにあることがわかったため、Sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E3CA1A89941C42E6だけで余分なパッケージの手間をすべて省くことができます。

3
dragon788

キーサーバーからPUBLIC_KEYを取得し、apt-keyに追加できます。キーサーバーがpgpkeys.mit.eduであると仮定すると、最初に入力する必要があります:

gpg --keyserver pgpkeys.mit.edu --recv-key KEY_IN_ERROR
gpg -a --export KEY_IN_ERROR | Sudo apt-key add -

キーKEY_IN_ERRORをエラーメッセージのキー、つまり5C808C2B65558117に置き換えます。

また、署名のないリポジトリを追加することに本当に興味がある場合は、次のようにsources.listの目的のリポジトリエントリにフラグを追加できます。

deb [allow-insecure=yes] http://www.deb-multimedia.org jessie main

これは、個々のエントリのセキュリティ設定を微調整する場合に非常に便利です。

2
leonidas