Me gustaría poder SSH a mi máquina usando una tarjeta inteligente Gemalto .NET como método de autenticación. ¿Cómo podría hacerse esto en una máquina Fedora 13 (o estilo genérico Red Hat)?
Estos son los pasos aproximados que creo que son necesarios:
- Certificado de provisión para la tarjeta inteligente (¿y posiblemente una CA para emitirla?)
- Obtenga el certificado en la tarjeta inteligente
- Configure el servidor SSH para permitir la autenticación con tarjeta inteligente y configúrelo para usar un certificado / CA particular
- Un cliente SSH que tiene soporte para tarjetas inteligentes (puntos extra por uno gratuito basado en Windows)
Yo recomendaría kerberos. MIT produce un cliente y servidor krb5.
vwduder, ¿podría recomendar un lector de tarjetas inteligentes y una fuente de tarjetas compatibles con FIPS-201?
http://csrc.nist.gov/publications/fips/fips201-1/FIPS-201-1-chng1.pdf
Tengo una copia en mi propio servidor, pero no soy lo suficientemente popular en este stacktrace en este momento como para compartirla con ustedes. Lo anterior es solo un poco menos confiable que nuestros propios servidores, por lo que probablemente podrá obtenerlo de ellos;)
[editar] ¡Ahora soy lo suficientemente popular!
http://www.colliertech.org/state/FIPS-201-1-chng1.pdf
fuente
Cuando se usan claves RSA, 1) y 2) son triviales, porque como veremos en 3) el certificado real es irrelevante en este contexto. Simplemente diríjase a cacert.org o genere un certificado autofirmado y ya está todo listo.
Para 3) deberá extraer su clave pública e instalarla en $ HOME / .ssh / Authorized_keys. ¡Presta atención a la propiedad y los permisos del archivo! (700 para .ssh, 600 para claves autorizadas). Se desaconseja la autenticación de clave pública en todo el host, pero se deja como un ejercicio para las mentes curiosas.
En cuanto a 4) debe buscar en PuTTY SC ( http://www.joebar.ch/puttysc/ ) o -preferentemente- PuTTY-CAC ( http://www.risacher.org/putty-cac/ ) que mejora PuTTY SC con un mejor algoritmo de extracción de clave pública y también incluye el soporte Kerberos-GSSAPI de la rama de desarrollo de PuTTY.
fuente
Hice un video para mostrar el uso de una tarjeta inteligente con un servidor Linux usando PuttySC y SecureCRT . Puedes verlo aquí: Cómo SSH con tu tarjeta inteligente
No explico cómo aprovisionar un certificado en la tarjeta, pero si lo hace, recuerde que la clave de administrador de la tarjeta debe cambiarse utilizando un Sistema de administración de tarjetas. Será mucho más fácil para usted si su empresa le proporciona una tarjeta inteligente para que no tenga que preocuparse por esta parte.
Una vez que haya aprovisionado la tarjeta, debe extraer la clave pública y luego agregarla a ~ / .sshd / optional_key.
Para conectarse al servidor, puede usar herramientas como PuttySC o SecureCRT. Deberá obtener la biblioteca PSKC # 11 para la tarjeta (ya sea del fabricante de la tarjeta inteligente o de una versión de código abierto). Configure la herramienta SSH con la biblioteca, debería poder leerla y encontrar el certificado.
Cuando se autentica, la herramienta le pedirá el PIN de la tarjeta inteligente.
fuente