У меня есть ключ gpg, который я использую через смарт-карту (yubikey neo) для ssh для многих хостов. Некоторые из этих хостов используют сертификаты, а также ключи для авторизации входа в систему. Для обычных ключей, которые хранятся локально, задействованы три файла:
Я заставляю ssh использовать файлы .pub и -cert.pub вместе для аутентификации, указав файл закрытого ключа -i ~/.ssh/id_rsa
. это заставляет его предлагать как открытый ключ, так и сертификат. вот так:
debug1: Authentications that can continue: publickey
debug1: Offering RSA-CERT public key: /home/user/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa-cert-v01@openssh.com blen 1086
debug1: ssh_rsa_verify: signature correct
когда закрытый ключ хранится на смарт-карте, такого файла нет, и сертификат не отправляется, даже если предлагается ключ RSA, подписанный сертификатом:
debug1: Next authentication method: publickey
debug1: Offering RSA public key: cardno:000XXXXXXX2
Который отклоняется из-за отсутствия подписи.
Если вы хотите использовать yubikey NEO для аутентификации на удаленных серверах, есть простой инструмент и инструкции, прямо от yubico:
https://developers.yubico.com/yubico-piv-tool/SSH_with_PIV_and_PKCS11.html