Ich wollte schon seit Jahren zeitabhängige Login-Token unter Linux. Ich habe es dann aber doch gelassen - War mir dann doch zu gefährlich an PAM herum zu programmieren.

Jetzt bin ich gerade auf das Google Authenticator Projekt gestoßen und musste es einfach ausprobieren.

Installation

Glücklicherweise gibt es bereits ein Paket im AUR: https://aur.archlinux.org/packages.php?ID=46403

$ wget https://aur.archlinux.org/packages/google-authenticator-libpam-hg/google-authenticator-libpam-hg.tar.gz
$ tar xf google-authenticator-libpam-hg.tar.gz
$ cd google-authenticator-libpam-hg
$ makepkg
$ sudo pacman -U google-authenticator-libpam-hg-61-1-i686.pkg.tar.xz

Einrichtung

Nun die folgende Zeile in /etc/pam.d/login einfügen:

auth            required        pam_google_authenticator.so

Zu guter letzt noch die Konfigurationsdatei erstellen:

$ google-authenticator

und den Anweisungen auf dem Bildschirm einsetzen.

So jetzt nur noch die Authenticator App entweder per Barcode oder manuell einrichten und schon kanns los gehen.

Erste Tests

Nach einem kurzen Neustart sollte es so aussehen:

Die zwei Password-Prompts stimmen übrigens. Der erste ist für sudo weil man für login root-Rechte benötigt und das zweite für den eigentlichen login als User jan.