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 。安定したInRelease 'は署名されていません。
「 Repo APT secure-apt-get update GPG signature was invalid "and" Frustrated with aptly and GPG signing の人々とは異なり、 = "私はaptly
を使用しているnotです。そのため、明らかにどのようなaptly
バグにも悩まされていません。 (-:
それで問題は何ですか?
この問題の原因は、Debian wikiやその他の同様のdocoが更新されておらず、ほとんどがほんの2、3の大部分bunt-Debian以外の関連発表personal = WWWサイト、SHA-1暗号化の設定を示すキーのサポートがAPT Debian 9でオフになりました(具体的には、APTバージョン1.4〜beta1、Debian 9のバージョンは1.4.7です。)
したがって、リポジトリ発行者は2つのことを行う必要があります。
personal-digest-preferences
およびpersonal-cipher-preferences
$HOME/.gnupg/gpg.conf
自分のGPG設定からSHA-1を削除します。これにより、新しいキーで問題が発生するのを防ぎます。gpg --edit-key "$ {key_fingerprint}"適切なキーフィンガープリントに置き換えてから、
pref
およびsetpref
コマンドを使用してキーの設定を編集し、キーをキーリングに保存します。新しい署名鍵を生成する必要はなく、SHA-1が削除された更新済みの鍵は引き続き古いDebian 8 APTと相互運用できることに注意してください。
JdeBPがすでに指摘したように、Debian 9以降、apt 9は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
署名は、tempフォルダーから実行してから、Webサーバーフォルダーに完全なものをコピーすることもできます。または、.
を呼び出すときに使用されるパス、つまり "apt-ftparchive
"を試してみることもできます。 .deb
sを別のツリーに保存したい。