Aller au contenu
ecdsa.com
OpenSSH ssh-keygen -Y verify (SSHSIG)SSH

Message d’erreur

Signature verification failed: incorrect signature

Également affiché sous la forme

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

Un principal qui ne figure pas dans le fichier des signataires autorisés pour cette clé échoue avec le seul message « Could not verify signature. » (aucune ligne de détail ne le précède).

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

Ce que cela signifie

`ssh-keygen -Y verify` a contrôlé une signature SSHSIG et la vérification cryptographique a échoué : les données lues sur l’entrée standard ne sont pas exactement celles qui ont été signées, ou la signature a été produite par une autre clé. Les signatures SSH sont aussi liées à un espace de noms (`file`, `git`, `email`…) ; une signature vérifiée sous un autre espace de noms échoue avec « namespace does not match » avant la vérification cryptographique. Chaque échec est suivi de « Could not verify signature. ».

Pourquoi cela se produit

Comment corriger l’erreur

  1. 1.

    Vérifier les octets exacts avec le bon espace de noms

    Redirigez le fichier d’origine vers `ssh-keygen -Y verify` et utilisez l’espace de noms employé lors de la signature. `find-principals` indique à quelle identité la clé correspond.

    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.

    Séparer la cryptographie de la confiance

    `check-novalidate` vérifie la signature sans consulter les signataires autorisés. Si cette vérification réussit, le problème vient de l’association des identités ; si elle échoue, ce sont les données ou la signature qui sont erronées.

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

Erreurs associées

Parcourir toute la base de données des erreurs de signature