git-lfs: signing-key retrieval fails with No data on Debian Trixie

未關閉
#1,774 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

維護者通常 3 天內回覆

還沒有人認領這個 Issue。

評估

難度
4/5
預估耗時
3-5 天
新手友好度
35/100
Issue 類型
缺陷
描述清晰度
基本清楚
活躍度
活躍
技術堆疊
debian, git, shell

研究方向

Start in src/git-lfs/install.sh, at receive_gpg_keys and the GIT_LFS_ARCHIVE_VERSION_CODENAMES check, which decides between the apt path and the GitHub release path on Trixie. The failure happens when xargs -n 1 gpg --recv-keys exits non-zero because one listed key cannot be fetched. Done means the git-lfs feature installs on a Trixie base image and signature verification is still enforced. Settle the design choice with maintainers before coding.

由索引模型根據 Issue 內容生成。

描述

Problem

The Git LFS feature fails during signing-key retrieval on Debian Trixie, before release signature verification. All retries fail.

Configuration

Minimal configuration extracted from the failing project (not separately rebuilt in isolation):

{
  "image": "mcr.microsoft.com/devcontainers/javascript-node:5-22-trixie",
  "features": {
    "ghcr.io/devcontainers/features/git-lfs:1": {}
  }
}

The lock file resolves the feature to 1.2.5, digest sha256:71c2b371cf12ab7fcec47cf17369c6f59156100dad9abf9e4c593049d789de72.

Build output

gpg: keybox '/tmp/tmp-gnupg/pubring.kbx' created
gpg: key F1BA225C0223B187: new key but contains no user ID - skipped
gpg: Total number processed: 1
gpg:           w/o user IDs: 1
gpg: /tmp/tmp-gnupg/trustdb.gpg: trustdb created
gpg: key F54FE648088335A9: public key "Chris Darroch (CODE SIGNING KEY) <[email protected]>" imported
gpg: Total number processed: 1
gpg:               imported: 1
gpg: keyserver receive failed: No data
(*) Failed getting key, retrying in 10s...

Subsequent attempts show the same skipped first key, unchanged second key, and No data failure, ending with:

(!) Failed to get gpg key.
ERROR: Feature "Git Large File Support (LFS)" (ghcr.io/devcontainers/features/git-lfs) failed to install!

Installer observations

In install.sh, Trixie is absent from GIT_LFS_ARCHIVE_VERSION_CODENAMES, so installation uses the GitHub release path. receive_gpg_keys runs every configured checksum key through xargs -n 1 gpg --recv-keys and requires the entire invocation to succeed. An unavailable listed key therefore aborts installation before checksum signature verification, even when another listed key imports successfully.

The log does not establish which keyserver supplied each result or why the final key lookup returned no data. It also does not establish whether the successfully imported key could verify the selected release.

Expected behavior

Git LFS should install on this base image while retaining authenticity verification. Please consider making trusted-key retrieval resilient to an unavailable keyserver entry, or using the distribution's signed package where appropriate. Signature verification should still be required.

The project has been changed to request Debian's git-lfs package through an apt feature, but that replacement has not yet been verified by a full container rebuild.

Related: #1072 also reports missing user IDs, but proceeds to signature verification; this failure stops earlier in key retrieval. #888 reports a different failure after all three keys import.

主要語言
Shell
星號
1.6k
分支
626
平均合併
4 天 10 小時
30 天內合併 PR
7

環境準備

在 Codespaces 中開啟

在瀏覽器裡用你自己的 GitHub 帳號啟動這個專案的開發容器。

  • 沒有 Dockerfile 或 Docker Compose 檔案
  • 沒有 Pull Request 範本
  • 閱讀貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

devcontainers/features 的其他 Issue

查看 devcontainers/features 的全部 Issue

相似的 Issue

更多 Shell/Bash Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。