aptのgpg署名チェックをバイパス/無視するにはどうすればよいですか?


47

私が訪問したキーサーバーはすべてタイムアウトしています。公開鍵の署名を確認せずにパッケージをインストールする必要があります。すべての署名チェックをバイパスする/すべての署名エラーを無視する方法、または署名が渡されたと考えるようにバカにする方法はありますか?

これは危険です


1
通常、リポジトリを追加すると同時にキーをローカルにインストールしますが、なぜキーサーバーにアクセスする必要があるのですか?
JanC

回答:


68

--allow-unauthenticatedオプションを次のapt-getように渡します。

sudo apt-get --allow-unauthenticated upgrade

のマニュアルページからapt-get

--allow-unauthenticated
パッケージを認証できず、それについてプロンプトを表示しない場合は無視します。これは、pbuilderなどのツールに役立ちます。構成アイテム:APT :: Get :: AllowUnauthenticated。

/etc/apt/apt.conf.d/dirにある独自の構成ファイルを使用して、この設定を永続的にすることができます。ファイル名99myownには、次の行を含めることができます。

APT::Get::AllowUnauthenticated "true";

このように、ソフトウェアをインストールするたびにオプションを使用する必要はありません。注:このオプションをデフォルトで設定することはお勧めしません。これにより、攻撃者がコンピューターを危険にさらす可能性のある署名チェックがバイパスされます。


4
情報:これapt-getはプレーンaptコマンドでは機能しますが、プレーンコマンドでは機能しません。
トアクリングバーグ

2
Ubuntu 16.0 LTS。これは機能しません/何にも影響しません
wvxvw

7

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

キーサーバーからキーをインストールしたり、httpsを介して信頼できるソースからダウンロードしたりできる場合は、以下のスクリプトはお勧めしませんが、他の方法がない場合はこれを使用できます。

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 リストにあることがわかり、余分なパッケージの煩わしさをすべて回避できます。


i3の問題のためにここに来ました- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E3CA1A89941C42E6解決しました!どうもありがとう!
ベネディクトケッペル

6

ファイル/etc/apt/apt.confを作成して(作成すると読み取られます)、次のコードを挿入できます。

APT{Ignore {"gpg-pubkey"; }};

5
私にはうまくいきません。しかし、私が追加したときに動作しますAPT { Get { AllowUnauthenticated "1"; }; };
PHPコーダー

ubuntu 16.0 LTS:apt-getの動作には影響しません。
wvxvw


0

古いdebianサーバーでも同じ問題が発生しました。私はイベントを作ることができませんでした

apt-get update

それは私に次のエラーを与えました:

E: Release file expired, ignoring http://archive.debian.org/debian/dists/squeeze-lts/Release (invalid since 1183d 0h 2min 51s)

最後に、解決策はこれを追加することでした:

Acquire::Check-Valid-Until false;

/etc/apt/apt.confに(存在しない場合は作成します)。この後、エラーは単純な警告になりました。

私はそれがubuntuでも動作するかもしれないと思います。

完全に安全ではないことに注意してください。


安全でない場合は、投稿しないことをお勧めします。
ユフェニュイ・バイエ・ダイダー

これを行う安全な方法は、ディストリビューションをアップグレードすることです。複雑な顧客の場合には、アップグレードする方法がありません。そして、質問全体がこの免責事項から始まっているので、「これを行うのは非常に危険だと非常によくわかっています」と、私の貢献が充当されたと思いました。そうでない場合は、削除できます。
グヌサム
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.