签署Debian存储库:避免SHA1,apt-get更新仍然抱怨消化不良

我为我的雇主维护一个小型debian存储库,由于SHA1的弃用,我们最近一直面临问题。

我们用一个4096bit的RSA密钥来签署我们的软件包。 为了签署存储库,我使用了这个GPG命令:

[email protected]:/var/www/debian/dists/xenial# cat /root/.gnupg/gpg.conf cert-digest-algo SHA512 digest-algo SHA512 disable-cipher-algo SHA1 default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed personal-digest-preferences SHA512 [email protected]:/var/www/debian/dists/xenial# gpg -a --detach-sign \ --personal-digest-preferences SHA512 \ --default-key=XXXXXXXX -o Release.gpg Release 

检查签名以确保它不使用SHA1:

 [email protected]:/var/www/debian/dists/xenial# gpg --list-packets Release.gpg :signature packet: algo 1, keyid XXXXXXXXXXXXXXXX version 4, created 1484090425, md5len 0, sigclass 0x00 digest algo 10, begin of digest 3f 00 hashed subpkt 2 len 4 (sig created 2017-01-10) subpkt 16 len 8 (issuer key ID XXXXXXXXXXXXXXXX) data: [4095 bits] 

据我所知,关于“消化algorithm10”的一点意味着它使用SHA512进行消解。 SHA1将是“消化algorithm2”。

在客户端,我做了以下几点:

 root@othermachine:/root# echo "deb https://debian.name-not-revealed.com xenial main" >> /etc/apt/sources.list root@othermachine:/root# apt-key adv --keyserver pool.sks-keyservers.net --recv-keys 0xXXXXXXXX root@othermachine:/root# apt-get update Hit:1 http://eu-central-1.ec2.archive.ubuntu.com/ubuntu xenial InRelease Get:2 http://eu-central-1.ec2.archive.ubuntu.com/ubuntu xenial-updates InRelease [102 kB] Get:3 http://eu-central-1.ec2.archive.ubuntu.com/ubuntu xenial-backports InRelease [102 kB] Hit:4 http://security.ubuntu.com/ubuntu xenial-security InRelease Hit:5 http://ppa.launchpad.net/ondrej/php/ubuntu xenial InRelease Ign:6 https://debian.name-not-revealed.com xenial InRelease Hit:7 https://debian.name-not-revealed.com xenial Release Fetched 204 kB in 12s (15.9 kB/s) Reading package lists... Done W: https://debian.name-not-revealed.com/dists/xenial/Release.gpg: Signature by key 20F6C08B949AF3A95ECD7F6FDCDE5A8971317416 uses weak digest algorithm (SHA1) 

为什么这个警告仍然出现? 为什么apt-get认为我仍在使用SHA1?

起初,我认为关键是罪魁祸首,所以我根据这个GPG迁移指南创build了一个新的: https : //wiki.ubuntu.com/SecurityTeam/GPGMigration

不过,我仍然收到了“消化不良”的警告。 我在我的智慧结束。 我究竟做错了什么?

我自己find了解决scheme:我使用了错误的GPG版本。 gpg 1.x忽略了所有的“不要使用SHA1”选项。 要使用这些标志,你必须使用被称为“gpg2”的gpg 2.x。