web-dev-qa-db-ja.com

リポジトリAPTセキュア-apt-getupdateGPG署名が無効でした

Aptlyを使用して新しいaptリポジトリを設定し、リポジトリに署名し、aptlyを使用してリポジトリにサービスを提供し、公開gpgキーをaptキーリングに追加した後、apt updateコマンドでエラーが発生しました。

Err:3 http://#REPO_URL#/#NAME# #DISTRIBUTION# InRelease                                    
  The following signatures were invalid: #KEY_ID#
Hit:4 http://apt.postgresql.org/pub/repos/apt sid-pgdg InRelease                  
Reading package lists... Done
W: GPG error: http://#REPO_URL#/#NAME# #DISTRIBUTION# InRelease: The following signatures were invalid: #KEY_ID#
E: The repository 'http://#REPO_URL#/#NAME# #DISTRIBUTION# 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.

それでも、署名とgpgキーは優れています。 InReleaseファイルのgpg署名の検証に成功しました。

curl http://#REPO_URL#/InRelease | gpg --keyring /etc/apt/trusted.gpg --verify
gpg: Signature made Wed 11 Jan 2017 04:01:23 PM CET
gpg:                using RSA key #KEY_ID#
gpg: Good signature from "#DESCRIPTION_GPG_KEY#" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: #GOOD_KEY_FINGERPRINT#

同様のコマンドを使用して、ReleaseファイルとRelease.gpgファイルも確認しました。

apt updateの間に何が行われたかをstrace -o /tmp/strace -ff apt update、次にgrepで見つけようとしました。

grep 'apt.*key' ./strace*
./strace.29829:execve("/usr/bin/apt-key", ["/usr/bin/apt-key", "--quiet", "--readonly", "verify", "--status-fd", "3", "/tmp/apt.sig.ORUwxh", "/tmp/apt.data.kKXyrN"], [/* 28 vars */]) = 0
./strace.29829:open("/usr/bin/apt-key", O_RDONLY)      = 4
./strace.29888:execve("/usr/bin/apt-key", ["/usr/bin/apt-key", "--quiet", "--readonly", "verify", "--status-fd", "3", "/tmp/apt.sig.utRWBD", "/tmp/apt.data.Fo1Lka"], [/* 28 vars */]) = 0
./strace.29888:open("/usr/bin/apt-key", O_RDONLY)      = 4
./strace.29947:execve("/usr/bin/apt-key", ["/usr/bin/apt-key", "--quiet", "--readonly", "verify", "--status-fd", "3", "/tmp/apt.sig.ug6xiV", "/tmp/apt.data.Yv4zFs"], [/* 28 vars */]) = 0
./strace.29947:open("/usr/bin/apt-key", O_RDONLY)      = 4
./strace.30006:execve("/usr/bin/apt-key", ["/usr/bin/apt-key", "--quiet", "--readonly", "verify", "--status-fd", "3", "/tmp/apt.sig.QSyrCg", "/tmp/apt.data.LK9DGO"], [/* 28 vars */]) = 0
./strace.30006:open("/usr/bin/apt-key", O_RDONLY)      = 4

このエラーをデバッグして修正するにはどうすればよいですか?

4
FlogFR

Debian 8(jessie)からDebian 9(stretch)へのアップグレードでも同じ問題が発生しました。 Debian 9には少なくとも2048ビットのGPGキーが必要であり、私の場合は1024ビットしかありませんでした。次の手順で修正できました。

  • 4096ビットの新しいGPGキーを作成します
  • そのキーをデフォルトとして使用するようにGPG構成を更新します(~/.gnupg/gpg.conf、default-keyオプション)
  • Releaseファイルに再署名し、Release.gpgInReleaseを作成します

この時点で、物事は再び機能し始めました。

4
Norman Ramsey

このバグは、バグのあるバージョンのaptlyから発生しました(どのバージョンか覚えていない)。

アップグレード後、エラーは消えました。

0
FlogFR