Windows 機器 Claude Code plugin 從 GitHub 安裝排錯 SOP

來源:2026-05-27 安裝 Webwright plugin 過程的踩坑紀錄。 適用情境:Windows 機器透過 /plugin install <name>@<marketplace> 安裝 plugin,plugin 來源為 GitHub repo,結果報 SSH 相關錯誤。

兩道牆(常見故障鏈)

/plugin install xxx@yyy
       │
       ▼
[牆 1] SSH host key verification failed
       │ 原因:~/.ssh/known_hosts 沒有 github.com 的指紋
       │ 但 Windows 舊 OpenSSH 不支援 sntrup761x25519-sha512 → ssh-keyscan 也拿不到
       ▼
[牆 2] Permission denied (publickey)
       │ 原因:GitHub 沒設 SSH key,或本機沒對應私鑰
       ▼
解法:用 git insteadOf 把 SSH URL 改寫成 HTTPS,繞過 SSH 整段

解法 SOP(三步)

步驟 1:寫 GitHub host keys 到 known_hosts(若 ssh-keyscan 失敗,從官方 API 拿)

# 從 GitHub 官方 meta API 拿 host keys 並寫入
$keys = Invoke-RestMethod https://api.github.com/meta | Select-Object -ExpandProperty ssh_keys
$keys | ForEach-Object { "github.com $_" } | Add-Content $env:USERPROFILE\.ssh\known_hosts

驗證 fingerprint(對照 GitHub 公告的 fingerprint):

  • ED25519: SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU
  • ECDSA: SHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM
  • RSA: SHA256:uNiVztksCsDhcc0u9e8BujQXVUpKZIDTMczCvj3tD2s

步驟 2:設定 git insteadOf(把 SSH URL 改寫成 HTTPS)

git config --global url."https://github.com/".insteadOf "git@github.com:"

步驟 3:重試 plugin install

/plugin install <plugin-name>@<marketplace-name>

步驟 4:套用 plugin

/reload-plugins

副作用警告

  • git config insteadOf 影響全域 — 所有 GitHub repo 操作都會走 HTTPS
  • 私有 repo push 需要 PAT token(不是密碼)
  • 如要復原:git config --global --unset url.https://github.com/.insteadof

根本原因(待解,不急)

Windows 舊 OpenSSH 不支援 GitHub 用的新 KEX 算法 sntrup761x25519-sha512,所以 ssh-keyscan 失敗。

根本解:升級到 Windows OpenSSH 9.x 或 PowerShell 7 內建版本。

應用記憶

  • 2026-05-27 安裝 Webwright(Microsoft browser agent framework)實戰驗證
  • 三次 install 才成功(牆 1 → 牆 2 → 過)

後續編譯方向

  • 可編譯成「Windows 環境 Claude Code 安裝&排錯主檔」
  • 涵蓋:plugin 安裝、SSH 排錯、PAT token 設定、known_hosts 維護

🔗 關聯

  • 進展檔:2026-05-27_Webwright-plugin安裝
  • 日記:2026-05-27