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
