Я вижу, вы используете устройство Yubico в качестве PIV. Но в Windows вы используете PUTTY-CAC и CAPI. Это означает, что встроенный код PIV в Windows 10, скорее всего, используется для доступа к Yubico в качестве карты типа PIV. Это должно работать, но, похоже, возвращенная подпись не проверяет. Также может быть, что код Putty CAPI неправильно строит ответ SSH.
глядя на Putty-CAC, не ясно, поддерживает ли код SHA256. Оригинальный Windows BSP не поддерживал, только поддерживал CALG_SHA1. CALG_SHA_256 был поддержан позже. Microsoft ALG_ID
У Putty есть возможность регистрации, которая может быть полезна. WireShark также может быть полезен для просмотра обмена ssh-пакетами.
Вы можете попробовать использовать интерфейс Putty-CAC PKCS # 11 и использовать модули opensc-pkcs11 или Yubico pkcs11.
После тестирования в Windows 10 с Putty-CAC (версия протокола клиента 2.0; версия программного обеспечения клиента PuTTY_Release_0.70_4) для OpenSSH (строка локальной версии SSH-2.0-OpenSSH_7.7) с помощью Yubikey 4 с апплетом PIV. Я могу заставить его работать с pkcs11 (opensc-pkcs11.dl), но не с CAPI. Я считаю, что проблема в строке 68 Putt-CAC cert-capi.c: if (CryptCreateHash((HCRYPTPROV)hCryptProv, CALG_SHA1, 0, 0, &hHash) != FALSE &&
Я считаю, что проблема CALG_SHA1
должна быть в том, что CALG_SHA_256
более новые OpenSSH не поддерживают sha1 для подписей, но rsa-sha-256 или rsa_sha-512.
У меня нет хорошей настройки среды для восстановления Putty-CAC.
Еще один хороший сайт https://piv.idmanagement.gov/engineering/ssh/
Смотрите отчет об ошибках в Putty-CAC / Issues / 30
После дальнейших испытаний выяснилось, что удаление пакета Yubico Minidriver приводит к тому, что все начинает работать. Драйвер не нужен, потому что в Windows 10 имеется встроенный драйвер для карт PIV или токенов с апплетом PIV. Yubico Minidriver не смог обработать что-то, что вызвало отображение MessageBox, но Putty-CAC не обработал неверные коды возврата и, когда это было впереди, отправил поддельный ответ на SSHD с неверной подписью.