出版するDebian リポジトリ。 4096ビットGPGキーを使用して署名され、しばらくDebian 7およびDebian 8システムでよく使用されました。最近、私のユーザーの1人がDebian 9に問題があると報告しました。具体的には、apt-get update
算出量は次のとおりです。
パッケージリストを読む...完了 W:GPGエラー:http://Debian-repository.JdeBP.info。 stable InRelease: 次の署名が無効です: A71733F3CEBD655CB25A0DDCE1E3A497555CE68F W:リポジトリhttp://Debian-repository.JdeBP.info。 stable InRelease 'は署名されていません。
「と一緒に注意してください。Repo APT Security - apt-get アップデート GPG 署名が無効です。「そして」適切なGPG署名に欲求不満「そうです。いいえ使用aptly
。aptly
どんな種類のエラーも経験していないことは明らかです。 (-:
それでは、問題は何ですか?
答え1
問題の原因は、Debian Wikiや他の同様の文書が更新されず、ほとんどいくつかの主要な更新しかないからです。Ubuntu- Debian以外の関連発表個人のWWW サイトは、Debian 9 以降、APT で SHA-1 暗号化プリファレンスキーのサポートがオフになっていることを示しています。 (具体的にはAPTバージョン1.4〜beta1ではオフになり、Debian 9バージョンは1.4.7です。)
したがって、ストレージパブリッシャは次の2つのことを行う必要があります。
- GPG設定からSHA-1を削除するには調整してください
personal-digest-preferences
。これにより、新しいキーが問題を繰り返すのを防ぎます。personal-cipher-preferences
$HOME/.gnupg/gpg.conf
- 環境設定の調整現在、ストレージ署名キーに含まれています。そこからSHA-1を削除してください。これを行うには、次のものが必要です。
- 走る
gpg --edit-key "${key_fingerprint}"
適切なキーフィンガープリントを交換し、pref
コマンドを使用してキー設定を編集し、キーをsetpref
キーリングに保存します。 - 更新されたキーの公開キーをキーリングからファイルにエクスポートします。
- 変更された署名キーを使用してリポジトリに再署名します。
- 更新された署名鍵の公開鍵ファイルを公開します。
- 走る
新しい署名キーを生成する必要はなく、SHA-1を削除する更新されたキーは以前のDebian 8 APTバージョンと引き続き相互運用されています。
追加読書
- ジュリアン・アンドレス・クロード(2016-03-14)。APTでSHA-1のサポートを停止。 jak-linux.org.
- ジュリアン・アンドレス・クロード(2016-03-15)。APT+SHA1に関する説明と更新。 jak-linux.org.
答え2
JdeBPが指摘したように、Debian 9以降、aptはSHA-1をサポートしなくなりました。つまり、InRelease
SHA-256を使用してファイルを生成する必要があります(同じ適用Release.pg
)。
この問題を解決する方法は、-digest-algo SHA256
gpgのパラメータとして指定することでした。したがって、全体のシーケンスは次のようになります。
パッケージの作成:
dpkg-deb --build ${PACKAGE_NAME}-1.0/ sudo rm ${SOME_TEMP_PATH}/* mv ${PACKAGE_NAME_name}-1.0.deb ${SOME_TEMP_PATH}/ dpkg-scanpackages ${SOME_TEMP_PATH} /dev/null | gzip -9c > ${SOME_TEMP_PATH}/Packages.gz sudo rm ${PATH_TO_REPO_IN_WWW_SERVER}/* sudo cp ${SOME_TEMP_PATH}/* ${PATH_TO_REPO_IN_WWW_SERVER} cd ${PATH_TO_REPO_IN_WWW_SERVER}
署名:
apt-ftparchive --md5 --sha256 release . > Release gpg --digest-algo SHA256 --armor --output Release.gpg --detach-sign Release gpg --digest-algo SHA256 --clearsign --output InRelease Release
一時フォルダで署名を完了してから、コンテンツ全体をWebサーバーフォルダにコピーすることもできます。または、sを別のツリーに保存する場合は、呼び出し.
時にパス(たとえば "")を使用することもできます。 。apt-ftparchive
.deb