Перейти к содержимому
ecdsa.com
OpenSSH ssh-keygen -Y verify (SSHSIG)SSH

Сообщение об ошибке

Signature verification failed: incorrect signature

Также выводится как

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

Если принципала нет в файле разрешённых подписантов для этого ключа, выводится только «Could not verify signature.» (без предшествующей строки с подробностями).

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

Что это означает

`ssh-keygen -Y verify` проверил подпись SSHSIG, и криптографическая проверка не прошла: данные, прочитанные со стандартного ввода, не совпадают в точности с подписанными, или подпись создана другим ключом. SSH-подписи также привязаны к пространству имён (`file`, `git`, `email`…); подпись, которую проверяют в другом пространстве имён, ещё до криптографической проверки даёт ошибку «namespace does not match». После каждой из этих ошибок выводится «Could not verify signature.».

Почему это происходит

Как исправить

  1. 1.

    Проверьте исходные байты с правильным пространством имён

    Передайте исходный файл на стандартный ввод `ssh-keygen -Y verify` и используйте то же пространство имён, что и при подписи. `find-principals` показывает, какому принципалу соответствует ключ.

    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.

    Отделите криптографию от доверия

    `check-novalidate` проверяет подпись, не обращаясь к файлу разрешённых подписантов. Если проверка проходит, проблема в сопоставлении ключей и принципалов; если нет — неверны данные или подпись.

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

Связанные ошибки

Открыть всю базу ошибок подписей