为什么`apt upgrade`没有为Skype获取新的软件密钥签名?

最近我进行了一次apt update && apt full-upgrade之后,当我随后运行apt full-upgrade时,出现了以下错误:
Get:4 https://repo.skype.com/deb stable InRelease [4,502 B]                                        
Err:4 https://repo.skype.com/deb stable InRelease
  The following signatures were invalid: EXPKEYSIG 1F3045A5DF7587C3 Skype Linux Client Repository <se-um@microsoft.com>
W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: https://repo.skype.com/deb stable InRelease: The following signatures were invalid: EXPKEYSIG 1F3045A5DF7587C3 Skype Linux Client Repository <se-um@microsoft.com>
W: Failed to fetch https://repo.skype.com/deb/dists/stable/InRelease  The following signatures were invalid: EXPKEYSIG 1F3045A5DF7587C3 Skype Linux Client Repository <se-um@microsoft.com>
W: Some index files failed to download. They have been ignored, or old ones used instead.

有没有办法来纠正这个问题,还是我应该等待微软/Canonical来生成/更新必要的密钥签名?

这个回答解决了你的问题吗?"GPG错误:发行版:以下签名无效:BADSIG" - guiverc
为Ubuntu存储库提供了密钥,您需要为不向Canonical/Ubuntu提供密钥的第三方来源添加它们。 - guiverc
BADSIG的解答旨在移除错误的密钥并获取一个新的。我的问题是最新可用的密钥已过期。 - Broadsworde
请检查您的主机时间和日期。 - paladin
日期、时间和时区都是正确的。 - Broadsworde
4Skype软件库的GPG密钥在2021年6月21日过期,微软尚未更新。可惜的是,这并不是第一次发生... - matigo
@karel,我的直觉是等待apt升级来获取新的密钥签名,这与你提供的建议相吻合。只有当apt升级实际执行时,我们才能知道这是否是正确的方法。 - Broadsworde
1我真希望微软的某个人能够站出来修复这个bug,或者是一个支持Ubuntu软件包分发工具的志愿者... 这个问题一直存在,并且影响着所有使用Skype的人。 - Scott Stensland
2个回答

现在密钥已经更新,您可以使用以下命令进行安装:
curl https://repo.skype.com/data/SKYPE-GPG-KEY | sudo apt-key add -

1我很困惑,https://repo.skype.com/deb/dists/stable/InRelease 的内容显示昨天(2021年6月23日)有更新,所以如果有新的密钥签名可用,apt full-upgrade 应该会检测到。 - Broadsworde
3这对我有效,但为什么在键入sudo apt-get update时可以自动发生? - Boris Valderrama

签名密钥的有效期已过,微软在几天后生成了一个新的密钥。您的系统中密钥的替换不是自动的,您需要删除旧密钥并添加新密钥。
解决此问题有两种方法:一种是使用传统的apt-key add命令,另一种是手动将新密钥添加到密钥环中。 # 适用于Ubuntu 21.04及更早版本的解决方案 您可以删除不再有效的密钥:
sudo apt-key del 1F3045A5DF7587C3

然后重新添加新的有效密钥:
curl https://repo.skype.com/data/SKYPE-GPG-KEY | sudo apt-key add -

运行sudo apt update && sudo apt upgrade,你应该看不到任何错误。

# 适用于Ubuntu 21.04和未来版本的解决方案

当你尝试在Ubuntu中使用apt-key添加APT存储库密钥时,可能会看到以下消息:

警告:apt-key已被弃用。请改为在trusted.gpg.d中管理密钥文件(参见apt-key(8))。

apt-key的手册页提到:

除了在维护脚本中使用apt-key del从主密钥环中删除现有密钥之外,apt-key的使用已被弃用。

因此,如果你使用的是Ubuntu 21.04之前的版本,可以使用apt-key delapt-key add,但对于后续版本,你必须手动将密钥添加到密钥环中(在Ubuntu 21.04中,这两种解决方案都可以完美地工作:我测试过它们)。

你可以删除不再有效的密钥:

sudo apt-key del 1F3045A5DF7587C3

下载密钥并将其添加到钥匙扣中:
curl https://repo.skype.com/data/SKYPE-GPG-KEY | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/skype-stable-archive-keyring.gpg

打开 skype-stable.list 文件...
sudo nano /etc/apt/sources.list.d/skype-stable.list

...并以以下方式修改第一行:
deb [arch=amd64 signed-by=/etc/apt/trusted.gpg.d/skype-stable-archive-keyring.gpg] https://repo.skype.com/deb stable main

运行sudo apt update && sudo apt upgrade,你不应该看到任何错误。

1我真希望微软的某个人能够站出来修复这个bug,或者是一个支持Ubuntu软件包分发工具的志愿者... 这个问题一直存在,并且影响着所有使用Skype的人。 - Scott Stensland