Der Google Authenticator ist ein kleiner Aufsatz für PAM und durch die Authenticator app werden entsprechende Keys generiert.
Die App gibt’s für iPhone, Android & Blackberry.
Auf dem Telefon liegt die App kostenlos im jeweiligen Store/Market vor.
Serverseitig müssen wir ein wenig mehr tun.
Ich halte mich mal an ein Debian System.
Evtl werde ich nachfolgend noch Solaris und FreeBSD bearbeiten.
Also erst mal die Voraussetzeungen:
Ein funktionierendes Mercurial dann noch libpam0g-dev und sudo.
Ich musste in einer Minimalinstallation von Debian noch etwas Hand anlegen, aber daran bin ich selbst schuld, daher findet es hier keine Erwähnung ;)
Serverseitig
Los gehts mit dem Checkout des google-authenticators:
hg clone https://google-authenticator.googlecode.com/hg/ google-authenticator/
Bau des Authenticators:
cd google-authenticator/libpam
make install
Zwei kleine Anpassungen in Confs:
In die /etc/pam.d/sshd wird folgendes eingefügt:
auth required pam_google_authenticator.so
In die /etc/ssh/sshd_config kommt:
ChallengeResponseAuthentication yes
Jetzt noch ein Restart vom sshd und wir sind an sich fertig.
Konfiguration im Handy
Zum verheiraten des Handys mit dem Server für den entsprechenden Benutzer ein google-authenticator absetzen und den QR-Code scannen – auf der Konsole wird eine URL ausgegeben, die bei Aufruf den QR-Code anzeigt.
Der Login ist also nach Beantwortung von ein paar gut erklärten Fragen zu der eigenen Paranoia um die Abfrage des Tokens generierten Passcodes erweitert.
root@debian:/etc/pam.d# google-authenticator
Do you want authentication tokens to be time-based (y/n) y
https://www.google.com/chart?chs=200×200&chld=M|0&cht=qr&chl=otpauth://totp/root@debian%3Fsecr
Your new secret key is: O6T2ASM5VNYU
Your verification code is 645
Your emergency scratch codes are:
5667639
4672771
4336960
8917622
8397542
Login sieht dann so aus:
bash-3.2$ ssh root@192.168.10.101
Password:
Verification code:
Linux debian 2.6.32-5-686 #1 SMP Wed Jan 11 12:29:30 UTC 2012 i686
root@debian:~#
Die App generiert in meinem Fall alle 30s einen neuen Passcode.

Viel Spaß damit!
Nochmal klar: Der Authenticator hakt nicht ein wenn Ihr euch mit SSH-Key anmeldet – ich nutze ihn als zweite Sicherheitsebene wenn es um Logins ohne Key von Fremdrechnern geht.
Ich bin aber dran eine Lösung zu finden wie ich SSH mit Key & PAM verheiraten kann.