Назад | Перейти на главную страницу

Как заставить ssh отправлять сертификат для ключа, хранящегося на смарт-карте

У меня есть ключ 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