sudo apt update で Fish のリポジトリキーが不正と表示される件について
前置き
MainsailOS をインストールしている Raspberry Pi で sudo apt update
を実行したら The following signatures were invalid: EXPKEYSIG 2CE2AC08D880C8E4 shells:fish OBS Project <shells:fish@build.opensuse.org>
と表示されるようになりました。
1> sudo apt update
2Get:1 https://pkgs.tailscale.com/stable/raspbian buster InRelease
3Hit:2 http://archive.raspberrypi.org/debian buster InRelease
4Get:3 http://raspbian.raspberrypi.org/raspbian buster InRelease [15.0 kB]
5Hit:4 http://download.opensuse.org/repositories/shells:/fish/Debian_10 InRelease
6Hit:5 https://deb.nodesource.com/node_16.x buster InRelease
7Err:4 http://download.opensuse.org/repositories/shells:/fish/Debian_10 InRelease
8 The following signatures were invalid: EXPKEYSIG 2CE2AC08D880C8E4 shells:fish OBS Project <shells:fish@build.opensuse.org>
9Get:6 http://raspbian.raspberrypi.org/raspbian buster/main armhf Packages [13.0 MB]
100% [6 Packages 6,114 kB/13.0 MB 47%] 40.1 kB/s 2min 51sdebug1: client_input_channel_req: channel 0 rtype keepalive@openssh.com reply 1
110% [6 Packages 12.9 MB/13.0 MB 99%] 28.5 kB/s 3sdebug1: client_input_channel_req: channel 0 rtype keepalive@openssh.com reply 1
12Fetched 13.0 MB in 6min 19s (34.4 kB/s)
13Reading package lists... Done
14Building dependency tree
15Reading state information... Done
163 packages can be upgraded. Run 'apt list --upgradable' to see them.
17W: An error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://download.opensuse.org/repositories/shells:/fish/Debian_10 InRelease: The following signatures were invalid: EXPKEYSIG 2CE2AC08D880C8E4 shells:fish OBS Project <shells:fish@build.opensuse.org>
18W: Failed to fetch http://download.opensuse.org/repositories/shells:/fish/Debian_10/InRelease The following signatures were invalid: EXPKEYSIG 2CE2AC08D880C8E4 shells:fish OBS Project <shells:fish@build.opensuse.org>
19W: Some index files failed to download. They have been ignored, or old ones used instead.
これではアップデートに支障が生じるので解決策を探したところ、公式の Github の Issues で解決策が見つかりましたので、参考のためにシェアします。
解決策の概要
簡単にまとめると次のとおりです。
- 期限切れになった既存のリポジトリキーを削除
- 新しいキーを登録
sudo apt update
を実行
具体的な手順
既存のリポジトリキーの確認
既存のリポジトリキーは、次のコマンドで確認できます。一番下の /etc/apt/trusted.gpg.d/shells_fish.gpg
が期限切れ(expired)になったキーです。
1> sudo apt-key list
2/etc/apt/trusted.gpg
3--------------------
4pub rsa2048 2012-04-01 [SC]
5 A0DA 38D0 D76E 8B5D 6388 7281 9165 938D 90FD DD2E
6uid [ unknown] Mike Thompson (Raspberry Pi Debian armhf ARMv6+VFP) <mpthompson@gmail.com>
7sub rsa2048 2012-04-01 [E]
8
9pub rsa2048 2012-06-17 [SC]
10 CF8A 1AF5 02A2 AA2D 763B AE7E 82B1 2992 7FA3 303E
11uid [ unknown] Raspberry Pi Archive Signing Key
12sub rsa2048 2012-06-17 [E]
13
14pub rsa4096 2020-02-25 [SC]
15 2596 A99E AAB3 3821 893C 0A79 458C A832 957F 5868
16uid [ unknown] Tailscale Inc. (Package repository signing key) <info@tailscale.com>
17sub rsa4096 2020-02-25 [E]
18
19/etc/apt/trusted.gpg.d/shells_fish.gpg
20--------------------------------------
21pub rsa2048 2013-10-08 [SC] [expired: 2022-04-12]
22 24A6 3B31 CAB4 1B33 EC48 801E 2CE2 AC08 D880 C8E4
23uid [ expired] shells:fish OBS Project <shells:fish@build.opensuse.org>
期限切れになったリポジトリキーの削除
期限切れになったリポジトリキーは、次のコマンドで削除できます。
1> sudo apt-key del 2CE2AC08D880C8E4
2OK
削除後のリポジトリキーのリストを確認すると、 /etc/apt/trusted.gpg.d/shells_fish.gpg
が削除されていることが確認できます。
1> sudo apt-key list
2/etc/apt/trusted.gpg
3--------------------
4pub rsa2048 2012-04-01 [SC]
5 A0DA 38D0 D76E 8B5D 6388 7281 9165 938D 90FD DD2E
6uid [ unknown] Mike Thompson (Raspberry Pi Debian armhf ARMv6+VFP) <mpthompson@gmail.com>
7sub rsa2048 2012-04-01 [E]
8
9pub rsa2048 2012-06-17 [SC]
10 CF8A 1AF5 02A2 AA2D 763B AE7E 82B1 2992 7FA3 303E
11uid [ unknown] Raspberry Pi Archive Signing Key
12sub rsa2048 2012-06-17 [E]
13
14pub rsa4096 2020-02-25 [SC]
15 2596 A99E AAB3 3821 893C 0A79 458C A832 957F 5868
16uid [ unknown] Tailscale Inc. (Package repository signing key) <info@tailscale.com>
17sub rsa4096 2020-02-25 [E]
新しいリポジトリキーの登録
新しいリポジトリキーは、次のコマンドで登録できます。このコマンドは、最初に触れた Github の Issues で提案されたコマンドを Debian10 向けに修正したものです。
1curl -fsSL https://download.opensuse.org/repositories/shells:fish:release:3/Debian_10/Release.key |gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/shells_fish_release_3.gpg > /dev/null
新しいリポジトリキーを登録した後のキーリストは次のとおりです。 /etc/apt/trusted.gpg.d/shells_fish_release_3.gpg
が登録されていることが確認できます。
1> sudo apt-key list
2/etc/apt/trusted.gpg
3--------------------
4pub rsa2048 2012-04-01 [SC]
5 A0DA 38D0 D76E 8B5D 6388 7281 9165 938D 90FD DD2E
6uid [ unknown] Mike Thompson (Raspberry Pi Debian armhf ARMv6+VFP) <mpthompson@gmail.com>
7sub rsa2048 2012-04-01 [E]
8
9pub rsa2048 2012-06-17 [SC]
10 CF8A 1AF5 02A2 AA2D 763B AE7E 82B1 2992 7FA3 303E
11uid [ unknown] Raspberry Pi Archive Signing Key
12sub rsa2048 2012-06-17 [E]
13
14pub rsa4096 2020-02-25 [SC]
15 2596 A99E AAB3 3821 893C 0A79 458C A832 957F 5868
16uid [ unknown] Tailscale Inc. (Package repository signing key) <info@tailscale.com>
17sub rsa4096 2020-02-25 [E]
18
19/etc/apt/trusted.gpg.d/shells_fish_release_3.gpg
20------------------------------------------------
21pub rsa2048 2013-10-08 [SC] [expires: 2024-06-07]
22 24A6 3B31 CAB4 1B33 EC48 801E 2CE2 AC08 D880 C8E4
23uid [ unknown] shells:fish OBS Project <shells:fish@build.opensuse.org>
sudo apt update
の実行
新しいリポジトリキーを登録しましたので、 sudo apt update
を実行して問題がないか確認します。 できます。このコマンドは、最初に触れた Github の Issues で提案されたコマンドを Debian10 向けに修正したものです。
1> sudo apt update
2Hit:1 http://download.opensuse.org/repositories/shells:/fish/Debian_10 InRelease
3Hit:2 https://deb.nodesource.com/node_16.x buster InRelease
4Hit:3 http://archive.raspberrypi.org/debian buster InRelease
5Hit:4 http://raspbian.raspberrypi.org/raspbian buster InRelease
6Get:5 https://pkgs.tailscale.com/stable/raspbian buster InRelease
7Fetched 5,543 B in 2s (2,367 B/s)
8Reading package lists... Done
9Building dependency tree
10Reading state information... Done
113 packages can be upgraded. Run 'apt list --upgradable' to see them.
無事に問題が発生することなくアップデートできていることが確認できました。
参考にしたサイト