Come posso impostare l'autenticazione SSH per smart card?


9

Vorrei poter eseguire l'SSH sulla mia macchina utilizzando una Smart Card Gemalto .NET come metodo di autenticazione. Come è possibile farlo su una macchina Fedora 13 (o stile Red Hat generico)?

Questi sono i passi difficili che penso siano necessari:

  1. Provisioning del certificato per la smart card (e forse una CA per emetterlo?)
  2. Ottieni il certificato sulla smart card
  3. Configurare il server SSH per consentire l'autenticazione con smart card e configurarlo per utilizzare un determinato certificato / CA.
  4. Un client SSH con supporto per smart card (punti extra per uno basato su Windows gratuito)

Risposte:


2

Credo che i driver Gemalto siano open source. Hanno il codice sorgente sul loro sito web.

Dovrai configurare il pammodulo (non sono sicuro di come farlo, ma il codice è sicuramente lì). Immagino che la pamconfigurazione richiederebbe una mappatura di un principio di certificato a un ID utente locale.

GDM credo che supporti le smart card ora, ma non sono sicuro di come lo rilevi. Proverò a cercarlo più tardi (il modo più semplice è probabilmente quello di sbirciare il gdmcodice sorgente).

Naturalmente tutto ciò richiede pcscde libpcsclitedeve essere installato. Sarà inoltre necessario copiare l' libgtop11dotnet.soa /usr/lib.


Grazie! Questo mi ha portato sulla strada giusta. Ci sono anche alcune informazioni davvero utili qui se qualcuno sta guardando un setup basato su RedHat: centos.org/docs/5/html/Deployment_Guide-en-US/sso-ov.html
Geoff Childs

Dove trovi il file libgtop11dotnet.so?
user568021

2

Consiglierei Kerberos. MIT produce un client e un server krb5.

vwduder, potresti consigliare un lettore di smart card e una fonte di schede conformi a FIPS-201?

http://csrc.nist.gov/publications/fips/fips201-1/FIPS-201-1-chng1.pdf

Ne ho una copia sul mio server, ma non sono abbastanza popolare su questo stacktrace in questo momento per condividerlo con te. Quanto sopra è solo leggermente meno affidabile dei nostri server, quindi probabilmente sarai in grado di ottenerlo da loro;)

[modifica] Ora sono abbastanza popolare!

http://www.colliertech.org/state/FIPS-201-1-chng1.pdf


@vwduder ha provato a rispondere, ma non fa ancora parte della closed beta
cjac



Grazie cjac! In combinazione con il contributo di vwduder penso di aver leccato questo.
Geoff Childs,

Freddo! Ancora una volta mentre ci sto pensando. Mio padre ha il merito di averli trovati. smartcardworld.com
cjac

1

Quando si usano le chiavi RSA, 1) e 2) sono banali, perché come vedremo in 3) il certificato effettivo è irrilevante in questo contesto. Vai su cacert.org o genera un certificato autofirmato e sei pronto.

Per 3) dovrai estrarre la tua chiave pubblica e installarla in $ HOME / .ssh / authorized_keys. Prestare attenzione alla proprietà e alle autorizzazioni dei file! (700 per .ssh, 600 per authorized_keys). L'autenticazione con chiave pubblica a livello di host è scoraggiata ma lasciata come esercizio per menti curiose.

Per quanto riguarda 4) dovresti esaminare PuTTY SC ( http://www.joebar.ch/puttysc/ ) o -preferably- PuTTY-CAC ( http://www.risacher.org/putty-cac/ ) che migliora PuTTY SC con un migliore algoritmo di estrazione della chiave pubblica e include anche il supporto Kerberos-GSSAPI dal ramo di sviluppo di PuTTY.


0

Ho realizzato un video per mostrare come utilizzare una smart card con un server Linux usando PuttySC e SecureCRT . Puoi guardarlo qui: Come SSH con la tua Smart Card

Non spiego come effettuare il provisioning di un certificato nella scheda, ma in tal caso, ricordare che la chiave di amministrazione della scheda deve essere modificata utilizzando un sistema di gestione della scheda. Sarà molto più facile per te se la tua azienda ti fornisce una smart card in modo da non doverti preoccupare di questa parte.

Una volta effettuato il provisioning della scheda, è necessario estrarre la chiave pubblica, quindi aggiungerla a ~ / .sshd / authorized_key.

Per connettersi al server, è possibile utilizzare strumenti come PuttySC o SecureCRT. Sarà necessario ottenere la libreria PSKC # 11 per la scheda (o dal produttore della smart card o una versione open source). Configurare lo strumento SSH con la libreria, dovrebbe essere in grado di leggerlo e trovare il certificato.

Quando esegui l'autenticazione, lo strumento ti chiederà il PIN della smart card.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.