I have used the libpam support for a couple boxes. A neat way to use two factor auth on the cheap.
http://code.google.com/p/google-authenticator/source/browse/...
The nice thing is that in the default config you don't need two-factor auth when using public-key auth.
So from your trusted terminal you use public-key auth, and only from untrusted terminals you need to use two-factor auth.