Yarn: 在 Ubuntu 18.04.1 LTS 上安装 Yarn 会出现无效签名错误。 可能过期的密钥?

创建于 2019-01-01  ·  35评论  ·  资料来源: yarnpkg/yarn

目前的行为是什么?

尝试在新的 Ubuntu 18.04.1 LTS 服务器上安装 yarn,我收到以下错误:

root<strong i="8">@vps631721</strong>:~# curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
OK
root<strong i="9">@vps631721</strong>:~# apt-key list
/etc/apt/trusted.gpg
--------------------
pub   rsa4096 2016-10-05 [SC]
      72EC F46A 56B4 AD39 C907  BBB7 1646 B01B 86E5 0310
uid           [ unknown] Yarn Packaging <[email protected]>
sub   rsa4096 2016-10-05 [E]
sub   rsa4096 2016-10-30 [S] [expires: 2019-01-01]

.................

root<strong i="10">@vps631721</strong>:~# echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
deb https://dl.yarnpkg.com/debian/ stable main
root<strong i="11">@vps631721</strong>:~# sudo apt-get update
Hit:1 http://security.ubuntu.com/ubuntu bionic-security InRelease
Hit:2 http://ppa.launchpad.net/certbot/certbot/ubuntu bionic InRelease
Hit:3 http://nova.clouds.archive.ubuntu.com/ubuntu bionic InRelease
Hit:4 http://nova.clouds.archive.ubuntu.com/ubuntu bionic-updates InRelease
Get:5 https://dl.yarnpkg.com/debian stable InRelease [13.3 kB]
Hit:6 http://nova.clouds.archive.ubuntu.com/ubuntu bionic-backports InRelease
Hit:7 http://apt.postgresql.org/pub/repos/apt bionic-pgdg InRelease
Err:5 https://dl.yarnpkg.com/debian stable InRelease
  The following signatures were invalid: EXPKEYSIG E074D16EB6FF4DE3 Yarn Packaging <[email protected]>
Reading package lists... Done
W: GPG error: https://dl.yarnpkg.com/debian stable InRelease: The following signatures were invalid: EXPKEYSIG E074D16EB6FF4DE3 Yarn Packaging <[email protected]>
E: The repository 'https://dl.yarnpkg.com/debian stable 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.

我不知道在执行apt-key list时行sub rsa4096 2016-10-30 [S] [expires: 2019-01-01] (即今天)是否有任何意义?

什么是预期行为?

纱线安装。

请提及您的 node.js、yarn 和操作系统版本。

Ubuntu 18.04.1 LTS

triaged

最有用的评论

应该由https://github.com/yarnpkg/releases/commit/0f3e4b26cd64fda47e46d82bf3ab458935deb36a修复

请重新下载该密钥,因为它现在包含一个新的子密钥:

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -

新的子密钥在 2020-02-02 到期(感谢不使用 1 月 1 日的建议,@jleclanche)

所有35条评论

哦,钥匙今天可能已经过期了! 一旦我休假回来(今天晚些时候或明天),我就得看看。

我们今天也有这个问题。

感谢您的所有帮助@Daniel15。

@DanBuild事实上:在添加 repo 并在 debian 上运行apt-get update ,我也遇到了EXPKEYSIG E074D16EB6FF4DE3 Yarn Packaging <[email protected]>

请注意您提供的密钥:

$ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --keyid-format 0xlong                                                                                                                 
gpg: WARNING: no command supplied.  Trying to guess what you mean ...
pub   rsa4096/0x1646B01B86E50310 2016-10-05 [SC]
      72ECF46A56B4AD39C907BBB71646B01B86E50310
uid                             Yarn Packaging <[email protected]>
sub   rsa4096/0x02820C39D50AF136 2016-10-05 [E]
sub   rsa4096/0xD101F7899D41F3C3 2016-10-05 [S] [expired: 2017-10-05]
sub   rsa4096/0x46C2130DFD2497F5 2016-10-30 [S] [expires: 2019-01-01]
sub   rsa4096/0xE074D16EB6FF4DE3 2017-09-10 [S] [expired: 2019-01-01]

请注意,过期的子键正是引用错误的那个。

@Daniel15根据https://github.com/yarnpkg/yarn/issues/4253 ,密钥有效期至 2019 年 1 月 1 日

不久前我遇到了同样的问题,它似乎一直有效到 2018 年。
哦...顺便说一句,大家新年快乐,Yarn 干得好!

安装脚本应该仍然有效,所以你现在可以使用它。 我会尽快修复它,但要到今晚才能修复,因为我目前正在旅行。

我通常会为密钥轮换创建一个 Github 问题,但我在 2018 年忘记这样做了。我将在我的日历中添加一个提醒,这样我明年也不会忘记这个。

作为临时修复,添加[trusted=yes]将删除 GPG 错误:

deb [trusted=yes] https://dl.yarnpkg.com/debian/ stable main

作为临时修复,添加[trusted=yes]将删除 GPG 错误:

` deb [trusted=yes] https://dl.yarnpkg.com/debian/ stable main

我将此添加到我的 /etc/apt/sources.list.d/yarn.list 文件...但运行 sudo apt update 仍然给我错误。 还有什么我需要做的吗?

@daveomcd我相信它只是在添加后作为警告出现,请尝试运行sudo apt-get install yarn 。 之后就可以安装了。

当 ansible 塔回调运行更新缓存并导致供应失败的剧本时,这会导致我的自动供应(aws 自动缩放点队列)失败。 是时候强化我的剧本了,那里的人要小心!

我真的很抱歉打破它。 这100%是我的错。 我通常会为每年的密钥轮换创建一个 Github 问题(请参阅上一期的 #4253),但去年忘记创建一个,今年我忘记了。

@daveomcd的解决方法很好。 我离家还有几个小时,但我会轮换密钥并尽快发布新的。 我还将配置一些监控,以便我们在密钥到期后 90 天内收到警报。

请注意,对于 CI 系统,理想情况下您不应在每次构建时安装 Yarn fresh。 相反,使用安装了所有构建工具的 Docker 映像。 :)

@Daniel15不用担心,我们都感谢您完全自愿且免费地投入时间来维护开源软件。

请注意,对于 CI 系统,理想情况下您不应在每次构建时安装 Yarn fresh。 相反,使用安装了所有构建工具的 Docker 映像。 :)

或者缓存它......这就是我在 Circle CI 上解决这个问题的方式......这样如果最新的安装失败,我仍然可以使用纱线。

我认为 CircleCI 的 Node.js Docker 容器预装了 Yarn。

从我的手机发送。

2019 年 1 月 1 日,星期二,下午 4:12,Allan Chappell < [email protected]写道:

请注意,对于 CI 系统,理想情况下您不应该在
每个构建。 相反,将 Docker 映像与所有构建工具一起使用
安装。 :)

或者缓存它......这就是我在Circle CI上解决这个问题的方式......
这样,如果最新的安装失败,我仍然可以使用纱线。


你收到这个是因为你被提到了。
直接回复本邮件,在GitHub上查看
https://github.com/yarnpkg/yarn/issues/6865#issuecomment-450767431或静音
线程
https://github.com/notifications/unsubscribe-auth/AAFnHUwhfyQicMQpS_8ikFZ5NfcoI1iyks5u-_ligaJpZM4ZmBF5
.

正确的,
现在显然他们在 PHP 容器上也有一个 node-browsers 变体,其中还包括 yarn ......情况并非总是如此......是时候更新一些 docker 容器标签了。

我通常会为密钥轮换创建一个 Github 问题,但我在 2018 年忘记这样做了。我将在我的日历中添加一个提醒,这样我明年也不会忘记这个。

我建议在 1 月 1 日以外的日期使密钥过期……这样,如果它确实过期了,就不是在假期期间:)

认为这甚至可能比 jan1 更早报告。
https://github.com/yarnpkg/yarn/issues/6861

应该由https://github.com/yarnpkg/releases/commit/0f3e4b26cd64fda47e46d82bf3ab458935deb36a修复

请重新下载该密钥,因为它现在包含一个新的子密钥:

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -

新的子密钥在 2020-02-02 到期(感谢不使用 1 月 1 日的建议,@jleclanche)

@Daniel15感谢您的快速响应,我可以确认它有效 =)

是的,我只是仔细检查了新的 Debian 和 Ubuntu VM,并确认它现在可以正常工作。 谢谢你的耐心!

我的错误是假设 apt/dpkg 即使密钥/签名已过期,它仍然可以正常使用,因为在密钥仍然有效的情况下签署了回购协议(因为上次更新是在 11 月)。 我认为这就是“vanilla”GPG 所做的,也是它在 Windows 上的工作方式:

Microsoft 的签名工具允许开发人员在添加 Authenticode 签名的同时添加时间戳。 即使用于签名的证书已过期,时间戳也允许验证码签名。

https://docs.microsoft.com/en-us/windows/desktop/seccrypto/time-stamping-authenticode-signatures

我将通过创建一些监视脚本来跟进此问题,这些脚本会在密钥危险地接近到期时提醒我们。

Microsoft 的签名工具允许开发人员在添加 Authenticode 签名的同时添加时间戳。 即使用于签名的证书已过期,时间戳也允许验证码签名。

我认为它应该像那样工作! 可能是关于 Debian 的错误报告?

仍然有每晚回购的警告
W: GPG error: https://nightly.yarnpkg.com/debian nightly InRelease: The following signatures were invalid: EXPKEYSIG E074D16EB6FF4DE3 Yarn Packaging <[email protected]> E: The repository 'https://nightly.yarnpkg.com/debian nightly InRelease' is not signed.

我为每晚的 repo 生成了一个新的 GPG 子密钥,但是我遇到了 Aptly (#6904) 的问题,这使得重新发布 repo 变得不可能:/

18:00 daniel<strong i="6">@vps03</strong> /var/www/nightly.yarnpkg.com
% ./update-deb.sh
+ aptly repo add -remove-files=true yarn-nightly ./nightly/deb-incoming/
Loading packages...
+ aptly publish update -gpg-key=4F77679369475BAA nightly yarn-nightly
ERROR: unable to update: local repo with uuid 55ff60af-263a-4df6-8f97-2c09ad7a4995 not found

现在应该修复了!

你好,

问题仍然存在于我的/etc/apt/sources.list.d

deb https://dl.yarnpkg.com/debian/ stable main

编辑:没关系,重新下载密钥修复它。 :)

我可以支持上述评论。 密钥自 9 天前的上次轮换以来发生了变化,必须重新下载。

我为每晚构建添加了一个新的子项,但是不应该有
影响了稳定回购。 我得去看看这里发生了什么......

从我的手机发送。

2019 年 1 月 11 日星期五上午 1:37 bvnierop < [email protected]写道:

我可以支持上述评论。 密钥自上次以来已更改
9天前轮换,不得不重新下载。


你收到这个是因为你被提到了。
直接回复本邮件,在GitHub上查看
https://github.com/yarnpkg/yarn/issues/6865#issuecomment-453452379或静音
线程
https://github.com/notifications/unsubscribe-auth/AEuWKj1tM5EhRflgriBWQ-iOw9gIhmSzks5vCFtngaJpZM4ZmBF5
.

密钥自 9 天前的上次轮换以来已更改

https://github.com/yarnpkg/yarn/issues/6916 中调查https :

我在这里解决了命令:
须藤 pkill dirmngr; dirmngr --debug-all --daemon --standard-resolver
sudo apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys 4F77679369475BAA
wget https://yum.dockerproject.org/gpg
sudo apt-key 添加 gpg

我 4 天前下载的修改后的密钥(包括新的子密钥)今天再次停止工作。

抱歉……现在应该没问题了。 这是在#6916 中跟踪的。

我现在有一个监控关键到期日期的仪表板: https :

又过期了。

The following signatures were invalid: EXPKEYSIG 23E7166788B63E1E Yarn Packaging <[email protected]>

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -

解决了问题

几周前我延长了到期时间,但您需要手动更新它,因为我还没有将其配置为自动更新。 见#7866

此页面是否有帮助?
0 / 5 - 0 等级