¿Puedo usar las claves generadas en la tarjeta HSPD-12 como teclas openssh? Si es así, ¿cómo?
El punto de la tarjeta inteligente es que no puede extraer la clave privada para el par de claves generado, pero que la clave pública es generalmente accesible.
Para * nix debe instalar las herramientas opensc (github.com/OpenSC). En ubuntu:
$ sudo apt-get install opensc
$ sudo apt-get install opensc-pkcs11
Los paquetes adicionales que pueden resultarle útiles incluyen OpenSSL (para engine-pkcs11.so instalado anteriormente, pero no es necesario para este proceso).
Volver a la pregunta principal sobre ssh y tarjetas inteligentes:
Tomando ssh como ejemplo, una clave RSA de 2048 bytes generada en la tarjeta, debe colocar la clave pública en los hosts remotos. Luego, cuando acceda a los hosts remotos desde su escritorio (en el escritorio: lector de tarjetas inteligentes con tarjeta inteligente insertada), se le pedirá que ingrese su pin para desbloquear la tarjeta.
Extraer la clave pública
En mi prueba HSPD-12 / PIV, la primera ranura de clave es la clave de autenticación y la segunda es la clave de firma. Usaré las herramientas de opensc para extraer la clave pública.
# note: use 'lsusb' to see if you can see your card reader, if not fix it.
$ pkcs15-tool --read-certificate 2 --out my_key.pub
En sus hosts remotos, coloque el contenido de my_key.pub en su archivo ~ / .ssh / authorized_keys2 de la misma manera que agrega otras claves públicas.
Ejemplo de Openssh:
$ ssh -I /usr/lib/opensc-pkcs11.so martin@remotehost
Enter PIN for 'MARTIN PALJAK (PIN1)':
martin@remotehost:~$
Lo anterior se tomó de la wiki del proyecto OpenSC: enlace
uDude