累計 位不重複訪客
快速找分類 🤖 AI 對話 🎨 AI 生圖 🎬 AI 影片 🎵 語音音樂 💻 寫程式 ✍️ 寫作文案 ⚡ 辦公效率 🔍 搜尋研究 🦾 AI 代理 🎁 免費總表
首頁 問問貓說 AI

問問貓AI 工具總表

gh 指令在 Linux 突然更新不了?GitHub CLI 簽章金鑰 9 月 5 日到期,apt/dnf/yum/zypper 一步一步換掉

文章最後更新:2026-09-05

如果你在 Linux 上用 aptdnf 裝過 GitHub 官方的 gh 指令,今天(2026 年 9 月 5 日)是一個要注意的日子:GitHub CLI 用來簽章 Linux 套件的 PGP 金鑰在今天到期。

到期之後,第一個新版本釋出時,套件庫資料會改用新金鑰簽章。系統上還留著舊金鑰的人,apt updatednf update 就會開始報錯。

好消息是:這次 GitHub 是提早半年準備的——2026 年 4 月 8 日就把「同時含舊金鑰與新金鑰」的金鑰檔發布出去了。所以很多人其實已經自動安全了。

先確認:你到底有沒有中招

官方公告直接給了一張對照表,用白話翻過來:

你的情況要不要處理
2026 年 4 月 8 日之後照官方文件安裝 gh不用,你的金鑰檔已經有新金鑰
4 月 8 日之前apt 裝的,之後沒重跑過安裝步驟要處理
4 月 8 日之前dnfyumzypper 裝的,之後沒重跑要處理
用 Homebrew、Conda、社群套件庫、直接下載執行檔或自己編譯不用,這些方式不經過這把金鑰
用 Windows 或 macOS不用
想不起來自己什麼時候裝的往下看「一行指令自己查」

一行指令自己查

Debian/Ubuntu(apt)

gpg --show-keys /etc/apt/keyrings/githubcli-archive-keyring.gpg

(找不到檔案的話,試舊路徑 /usr/share/keyrings/githubcli-archive-keyring.gpg;還是找不到就看 cat /etc/apt/sources.list.d/github-cli.listsigned-by= 指到哪。)

怎麼看結果:輸出裡有兩把公鑰就沒事,只有一把(舊的那把)就要更新。兩把金鑰的指紋是:

  • 舊金鑰(2026-09-05 到期):2C6106201985B60E6C7AC87323F3D4EA75716059
  • 新金鑰:7F38BBB59D064DBCB3D84D725612B36462313325

Fedora/RHEL/CentOS/openSUSE/Amazon Linux 2(rpm)

rpm -qa gpg-pubkey | xargs -I{} sh -c 'rpm -qi {} | grep -q "[email protected]" && echo {}'

只列出一筆(舊金鑰)就要更新;有第二筆就代表新金鑰已經進來了。

修復步驟

Debian/Ubuntu

把金鑰檔換成官方最新版,然後更新:

sudo mkdir -p -m 755 /etc/apt/keyrings
sudo wget -qO /etc/apt/keyrings/githubcli-archive-keyring.gpg https://cli.github.com/packages/githubcli-archive-keyring.gpg \
    && sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg
sudo apt update
sudo apt install gh

沒有 wget 的話,用 curl -fsSL -o 取代那一行下載指令即可。

如果你的金鑰檔在別的位置(例如 /usr/share/keyrings/),記得把上面的路徑改成你實際的位置,並確認套件來源設定裡的 signed-by= 指的是同一個檔案。

Docker 映像檔建置失敗的話,把同一段下載指令寫進 Dockerfile 的 RUN 就好(容器裡通常本來就是 root,不用 sudo)。

根本沒在用 gh、只是基底映像檔剛好裝了:直接移掉這個套件來源,apt update 就不會再去驗證它:

sudo rm /etc/apt/sources.list.d/github-cli.list

Fedora 41 以上(DNF5)

sudo dnf config-manager addrepo --overwrite --from-repofile=https://cli.github.com/packages/rpm/gh-cli.repo
sudo dnf update gh

CentOS/RHEL/Fedora 40 以下(DNF4)

sudo dnf config-manager --add-repo https://cli.github.com/packages/rpm/gh-cli.repo
sudo dnf update gh

Amazon Linux 2(yum)

sudo yum-config-manager --add-repo https://cli.github.com/packages/rpm/gh-cli.repo
sudo yum update gh

openSUSE/SUSE(zypper)

sudo zypper removerepo gh-cli
sudo zypper addrepo https://cli.github.com/packages/rpm/gh-cli.repo
sudo zypper update gh

RPM 系統在最後升級時會跳出確認匯入金鑰的提示——這時候請比對指紋是不是上面那兩串,確認了再按同意。這一步不要跳過:確認指紋正是簽章機制的意義所在。

還是失敗?先把舊金鑰從 RPM 金鑰圈移掉

sudo rpm -qa gpg-pubkey
sudo rpm -qi gpg-pubkey-75716059-63172e8a

確認 Packager 欄位是 GitHub CLI <[email protected]> 之後再移除,然後重裝:

sudo rpm -e gpg-pubkey-75716059-63172e8a
sudo dnf remove gh
sudo dnf install gh

(用 yumzypper 的人把指令換掉即可。)

你會看到的錯誤訊息長怎樣

官方列了幾種典型訊息,看到其中任一種就是這件事:

W: Failed to fetch https://cli.github.com/packages/dists/stable/InRelease
The following signatures were invalid: EXPKEYSIG 23F3D4EA75716059 GitHub CLI
The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 5612B36462313325
Transaction failed: Signature verification failed.
OpenPGP check for package ... from repo "gh-cli" has failed
Error: GPG check FAILED

為什麼會有這件事?

軟體套件庫用 PGP 金鑰簽章,是為了讓你的電腦能確認「這個檔案真的是 GitHub 發的、沒有被中途換掉」。金鑰有到期日,到期就得換一把。

上一次(2024 年 9 月)GitHub 的金鑰到期時是臨時延長舊金鑰來救火的,那次造成不少人安裝與更新失敗。這一次官方選擇提早半年換發新金鑰,並事先把新舊兩把一起發布——所以照官方文件近期裝過的人,什麼都不用做。

常見問題

我今天沒看到錯誤,是不是就沒事了?

不一定。官方說法是「到期日之後的第一個新版本釋出開始」,套件庫資料與新發布的 RPM 套件才會只用新金鑰簽章。所以你可能今天沒事、下週更新時才炸。與其等它壞,不如現在用上面那行指令查一下。

我用 Homebrew 裝的 gh,要處理嗎?

不用。Homebrew、Conda、社群套件庫、GitHub Releases 上的 .deb 檔或獨立執行檔,都不經過這把 PGP 金鑰。

這算資安事件嗎?我的機器有被入侵嗎?

不算,也沒有。這是例行的金鑰輪替,不是外洩事件。真正該警惕的反而是相反的情況:如果你為了讓錯誤消失而加上「跳過簽章驗證」的參數,那才是把自己暴露在風險裡。正確做法是換成新金鑰,不是關掉檢查。


資料來源:GitHub CLI 官方公告 issue #13118「Upcoming PGP signing key rotation for GitHub CLI Linux packages [September 2026]」(2026-04-08 發布,含自我檢查與各套件管理器修復步驟、金鑰指紋與錯誤訊息範例)、GitHub 官方更新紀錄「GitHub CLI Linux package signing key expires September 5」(2026-09-03);皆為 2026-09-05 直讀。 證據等級:官方一手(GitHub 官方公告與官方 changelog 兩份交叉)。 延伸GitHub Copilot 工具頁Copilot 內容排除設定教學

🐾 3 秒找最划算:回答三題,雙貓直接推薦