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


63

DebianマルチメディアのUbuntu 16.04で署名のないレポを使用しています:

deb http://www.deb-multimedia.org jessie main

をインストールする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.

回答:


40

次のオプションを使用して、いくつかの重要な安全対策をバイパスできます。

--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.

ただし、このオプションをより広く使用する場合は注意が必要です。コンピュータを保護するための安全対策が設けられており、自由を制限することはありません...


1
私はRaspbian stretchE: The repository 'http://ftp.de.debian.org/debian testing InRelease' is not signed.Python 3.5からアップグレードしたいオプションを使用しています。t 3.6。
ティモ

2
実行するときに「このオプションは他のオプションと一緒に解釈することはできない」と教えてくれましたsudo apt-get update --allow-unauthenticated
Xerus

26
注:これは、2018
Jay Taylor

@JayTaylor:18.04の新しい仮想マシンを開いたところです。コマンドはここで完璧に機能します。ここのペーストビン
pastebin.com/ygLTnP1C

2
面白い; おそらく、私が観察したエラーの背後から試してみたマシンには、別の何かがあるかもしれません。いずれにせよ、[trusted=yes]sources.listにフィールドを追加しても機能しました。@ andrew.46 :)にご協力いただきありがとうございます
ジェイテイラー

62

次のオプションを設定できますsources.list(にあります/etc/apt/sources.list)。

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

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

ターミナル内のファイルをvim(または任意の方法)またはgeditなどの非ターミナルエディターで編集できます。


sources.listターミナルからどのようにアクセスしますか?
ファジー

1
にあります/etc/apt/sources.list。vim(またはお好みのもの)を使用してターミナル内で編集するか、geditなどの非ターミナルエディターを使用します。
プラトゥバロニア

8

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

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

ここまでの完全なウォークで説明したように


3

キーをパッケージ化したリポジトリからパッケージを取得してリポジトリ内に含めようとする場合、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がこれを行うため、元々これをまとめましたが、キーがsudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E3CA1A89941C42E6keyserver.ubuntu.com リストにあることがわかり、余分なパッケージの煩わしさをすべて回避できます。


以下のような嫌なことを言ってUbuntuの18.04があり、それは私を困らせるためにしようと直面したときに、この答えは、不完全なようだ... Release is not valid yet (invalid for another 44min 35s). Updates for this repository will not be applied. 後であってもRM-INGのに/ var / lib / apt /リスト/ *事を...
ユルゲン・ワイゲルト

これは単にミラー複製の問題であり、リポジトリ内のパッケージの認証または署名に影響を与えるべきではありません。1804はベータ版から出てきたばかりなので、多くのミラーが追いつこうとしているので、ミラーリングサービスはまだ完全に同期していないサーバーを指している可能性があります。
dragon788

2

キーサーバーから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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.