USB drive Login token system?

There is an article at LinuxConfig for Linux authentication login with USB device.

accomplished by use of Pluggable Authentication Modules ( PAM ) and some sort of USB storage device such as USB memory stick of Mobile phone with SD card attached.

This authentication technique can be also further expanded into Two-Factor authentication where two authentication methods involving USB token and one-time password can be merged together to produce a greater security.

A summary of actions,

  1. sudo apt-get install pamusb-tools libpam-usb
  2. sudo pamusb-conf --add-device my-usb-stick
  3. sudo pamusb-conf --add-user ubuntu-user
  4. edit a /etc/pam.d/common-auth file
    • auth sufficient pam_usb.so
    • auth required pam_unix.so nullok_secure
    • Before you do any changes to /etc/pam.d/common-auth open-up separate terminal with root access. This is just in case that something goes wrong, and you need a root access to change /etc/pam.d/common-auth back to the original configuration.
  5. su ubuntu-user -- "ubuntu-user" is the username from step 3.
  6. There are some more notes at the end

It's not a regular USB key, but have you looked at YubiKey? It can generate either one-time passwords or just send a normal but long password, and it's recognised as a USB keyboard so it works on pretty much any computer.