Una buona soluzione è quella di avere la chiave su un dispositivo hardware dedicato che eseguirà tutte le operazioni di crittografia senza nemmeno rivelare il materiale chiave al computer host. Puoi utilizzare qualsiasi scheda PKI supportata da OpenSC , una smartcard OpenPGP (supportata da GnuPG e OpenSC) o una Yubikey (che in questo caso si comporterà proprio come una scheda OpenPGP).
Per le schede supportate da OpenSC, installa OpenSC e comunica a OpenSSH di usarlo:
ssh -I /usr/lib/opensc-pkcs11.so [email protected]
Per GnuPG puoi utilizzare l'agente GPG come agente SSH che esporrà le chiavi della carta attraverso quello. Si noti che, a meno che non si abbia bisogno di una password passphrase / PIN, si consiglia di utilizzare OpenSC su GPG.
Su Windows, dovresti usare il minidriver della tua carta (come Microsoft chiama software come OpenSC) - molti di questi possono essere scaricati automaticamente purché tu permetta al tuo sistema di cercare i driver online. Se non viene trovato nessun minidriver ufficiale, è possibile utilizzare la build di Windows di OpenSC che include un minidriver generico. Nota che per le schede OpenPGP esiste un minidriver di terze parti che funziona meglio di quello di OpenSC (in effetti Non ho avuto fortuna a far funzionare il minidriver di OpenSC con la scheda OpenPGP, anche se la libreria PKCS11 funzionava correttamente dimostrando che OpenSC stava parlando con la scheda).
Una volta installato il minidriver, il software sarà in grado di parlare con la scheda utilizzando l'API Crypto standard del sistema (la scheda viene visualizzata come qualsiasi altro certificato nell'archivio dei certificati dell'utente). PuTTY-CAC è un programma che può avvantaggiarsi di quei certificati (e schede), include PuTTY stesso e Pageant , L'equivalente di PuTTY di un agente SSH. Se sotto Cygwin / MSYS puoi usare ssh-pageant
per convertire un Pageant in esecuzione in un agente SSH che può essere usato dallo standard ssh
(un ponte diretto tra CAPI e SSH sarebbe stato più bello, ma non esiste ancora nulla di simile ).