本文へスキップ
ecdsa.com
GnuPG (gpg --verify, git verify-commit / verify-tag)Git

エラーメッセージ

gpg: BAD signature from "Release Bot <release@example.com>" [ultimate]

別の表記

  • gpg: BAD signature from "Release Bot <release@example.com>" [unknown]

引用符で囲まれたユーザー ID と、角かっこで囲まれた信頼レベル(`[ultimate]`、`[full]`、`[unknown]`)は、キーリングから取得されたものです。

このエラーの意味

gpg は署名者の公開鍵を持っており、署名を検証しましたが、検証に失敗しました。データは、鍵の保有者が署名したものと一致しません。「No public key」とは異なり、これは確定した否定的な結果です。ファイルやオブジェクトが署名後に変更されたか、署名が別のデータに対するものです。内容は信頼できないものとして扱ってください。角かっこ内の語は、その鍵に設定した信頼レベルであり、判定の一部ではありません。

発生する理由

修正方法

  1. 1.

    両方のファイルを取得し直して再検証する

    信頼できる経路で入手したファイルでも結果が BAD のままなら、その内容は使わず、公開元に知らせてください。

    bash
    # Fetch both files again over a verified channel and compare
    sha256sum release.tar.sha256
    curl -sSLO https://example.com/downloads/release.tar.sha256
    curl -sSLO https://example.com/downloads/release.tar.sha256.asc
    gpg --verify release.tar.sha256.asc release.tar.sha256
  2. 2.

    署名済みのテキストファイルを変換から守る

    `.gitattributes` で署名ファイルとチェックサムファイルをバイナリとして指定し、改行コードの変換が一切適用されないようにしてください。

    text
    # .gitattributes: never convert line endings of signed files
    *.asc  -text
    *.sig  -text
    SHA256SUMS -text

関連するエラー

署名エラーデータベースをすべて見る