| How to use smartcards with OpenSSH? |
| |
| OpenSSH contains experimental support for authentication using Cyberflex |
| smartcards and TODOS card readers, in addition to the cards with PKCS#15 |
| structure supported by OpenSC. |
| |
| WARNING: Smartcard support is still in development. |
| Keyfile formats, etc are still subject to change. |
| |
| To enable sectok support: |
| |
| (1) install sectok: |
| |
| Sources and instructions are available from |
| http://www.citi.umich.edu/projects/smartcard/sectok.html |
| |
| (2) enable sectok support in OpenSSH: |
| |
| $ ./configure --with-sectok[=/path/to/libsectok] [options] |
| |
| (3) load the Java Cardlet to the Cyberflex card: |
| |
| $ sectok |
| sectok> login -d |
| sectok> jload /usr/libdata/ssh/Ssh.bin |
| sectok> quit |
| |
| (4) load a RSA key to the card: |
| |
| Please don't use your production RSA keys, since |
| with the current version of sectok/ssh-keygen |
| the private key file is still readable. |
| |
| $ ssh-keygen -f /path/to/rsakey -U <readernum, eg. 0> |
| |
| In spite of the name, this does not generate a key. |
| It just loads an already existing key on to the card. |
| |
| (5) optional: |
| |
| Change the card password so that only you can |
| read the private key: |
| |
| $ sectok |
| sectok> login -d |
| sectok> setpass |
| sectok> quit |
| |
| This prevents reading the key but not use of the |
| key by the card applet. |
| |
| Do not forget the passphrase. There is no way to |
| recover if you do. |
| |
| IMPORTANT WARNING: If you attempt to login with the |
| wrong passphrase three times in a row, you will |
| destroy your card. |
| |
| To enable OpenSC support: |
| |
| (1) install OpenSC: |
| |
| Sources and instructions are available from |
| http://www.opensc.org/ |
| |
| (2) enable OpenSC support in OpenSSH: |
| |
| $ ./configure --with-opensc[=/path/to/opensc] [options] |
| |
| (3) load a RSA key to the card: |
| |
| Not supported yet. |
| |
| Common smartcard options: |
| |
| (1) tell the ssh client to use the card reader: |
| |
| $ ssh -I <readernum, eg. 0> otherhost |
| |
| (2) or tell the agent (don't forget to restart) to use the smartcard: |
| |
| $ ssh-add -s <readernum, eg. 0> |
| |
| -markus, |
| Sat Apr 13 13:48:10 EEST 2002 |