In one of the latest versions of OpenSSH it is now possible to store ECDSA keys on smart cards. If you managed to use ssh with your RSA keys on the yubikey its fairly simple to go to ECDSA. The only thing you need is a late snapshot of OpenSSH portable and a patch.
# fetch http://www.mindrot.org/openssh_snap/openssh-SNAP-20151124.tar.gz # tar zxf openssh-SNAP-20151124.tar.gz # cd openssh # fetch "https://bugzilla.mindrot.org/attachment.cgi?id=2728" -o ecdsa.patch # patch -s < ecdsa.patch # ./configure [...] # gmake [...]
Now you should be able to use get public keys from the smart card on your yubikey. Make sure pcscd is running then fetch the key with your newly compiled ssh-keygen.
# ./ssh-keygen -D /usr/local/lib/opensc-pkcs11.so C_GetAttributeValue failed: 18 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBAJGTLvC9BHSNPAfOw3s4lEix3zKLBKRgZlQ9kSxyttSG8XZ/NIoxm+ZYGbkYxji1kN7brMff21mgXGUzfxp58M=
References:
https://bugzilla.mindrot.org/show_bug.cgi?id=2474
http://lists.mindrot.org/pipermail/openssh-bugs/2015-September/015514.html
https://framkant.org/2015/11/using-smart-card-enabled-yubikey-for-ssh-authentication-in-freebsd/