Vejo que você está usando um dispositivo Yubico como um PIV. Mas no Windows você está usando o PUTTY-CAC e o CAPI. Isso significa que o código PIV interno do Windows 10 provavelmente está sendo usado para acessar o Yubico como uma placa do tipo PIV. Isso deve funcionar, mas parece que a assinatura retornada não verifica. Também pode ser o código CAPI do Putty não está construindo a resposta SSH corretamente.
Olhando para o Putty-CAC , não está claro se o código suporta SHA256. O original do Windows BSP não, apenas suportando CALG_SHA1. CALG_SHA_256 foi suportado posteriormente. ALG_ID da Microsoft
O Putty tem um recurso de registro que pode ser útil. O WireShark também pode ser útil para ver os pacotes ssh sendo trocados.
Você pode tentar usar a interface Putty-CAC PKCS # 11 e usar os módulos opensc-pkcs11 ou Yubico pkcs11.
Após testar no Windows 10 com Putty-CAC (versão de protocolo de cliente 2.0; versão de software cliente PuTTY_Release_0.70_4)
para OpenSSH (cadeia de versão local SSH-2.0-OpenSSH_7.7) Com um Yubikey 4 com applet PIV. Eu posso fazê-lo funcionar com pkcs11 (opensc-pkcs11.dl), mas não com o CAPI. Eu acredito que o problema está na linha 68 da Putty-CAC cert-capi.c:
%código%
Eu acredito que o problema é
if (CryptCreateHash((HCRYPTPROV)hCryptProv, CALG_SHA1, 0, 0, &hHash) != FALSE &&
deve ser CALG_SHA1
Como o OpenSSH mais novo não suporta sha1 para assinaturas, mas sim rsa-sha-256 ou rsa_sha-512.
Eu não tenho uma boa configuração de ambiente para reconstruir o Putty-CAC.
Outro bom site é o link
Veja o relatório de erros em Putty-CAC / Issues / 30
Após mais testes, descobriu-se que a remoção do pacote Yubico Minidriver fazia com que as coisas começassem a funcionar. O driver não é necessário porque o Windows 10 possui um driver interno para cartões PIV ou tokens com um applet PIV. O Minidriver de Yubico não pôde manipular algo causando a exibição de um MessageBox, mas o Putty-CAC não manipulou os códigos de retorno inválidos e quando adiantou e enviou uma resposta falsa ao SSHD com uma assinatura inválida.