Pular para o conteúdo
ecdsa.com
OpenSSH ssh-keygen -Y verify (SSHSIG)SSH

Mensagem de erro

Signature verification failed: incorrect signature

Também aparece como

  • Couldn't verify signature: namespace does not match
  • Could not verify signature.

Um principal que não está listado no arquivo de signatários permitidos (allowed signers) para esta chave falha só com “Could not verify signature.” (sem uma linha de detalhe antes).

OpenSSH ssh-keygen -Y verify (SSHSIG) — also used by Git for SSH-signed commits

O que significa

O `ssh-keygen -Y verify` conferiu uma assinatura SSHSIG e a verificação criptográfica falhou: os dados lidos da entrada padrão não são exatamente o que foi assinado, ou a assinatura foi feita por outra chave. Assinaturas SSH também ficam vinculadas a um namespace (`file`, `git`, `email`…); uma assinatura verificada com outro namespace falha com “namespace does not match” antes da checagem criptográfica. Toda falha é seguida de “Could not verify signature.”.

Por que acontece

Como corrigir

  1. 1.

    Verificar os bytes exatos com o namespace correto

    Envie o arquivo original por pipe para `ssh-keygen -Y verify` e use o namespace usado na assinatura. `find-principals` mostra a qual identidade a chave corresponde.

    bash
    # Verify exactly the bytes that were signed, with the namespace used at signing time
    ssh-keygen -Y verify -f allowed_signers -I release@example.com -n file -s release.txt.sig < release.txt
    # Which principal does the allowed_signers file map this signature's key to?
    ssh-keygen -Y find-principals -f allowed_signers -s release.txt.sig
  2. 2.

    Separar criptografia de confiança

    `check-novalidate` verifica a assinatura sem consultar os signatários permitidos. Se passar, o problema está no mapeamento de identidades; se falhar, os dados ou a assinatura estão errados.

    bash
    ssh-keygen -Y check-novalidate -n file -s release.txt.sig < release.txt   # signature valid at all (no trust check)?

Erros relacionados

Ver toda a base de erros de assinatura