SSH mit Google Authenticator

Dieses Blog läuft auf meinem eigenen Webserver. Neben diesem hier, administriere ich noch drei weitere. Einer davon ist der vom Hochzeitsfotografen aus Hamburg, Patrick Ludolph und sein Blog neunzehn72.de. So viel zur Einleitung.

So ein Webserver steht in der Regel in einem Rechenzentrum. Wenn man Änderungen an irgendeiner Software machen will, muss man über das Internet darauf zugreifen. Hierzu verwendet man (mal von wenigen Ausnahmen abgesehen) SSH, wenn es ein Linux Server ist (was wohl meistens der Fall ist). Wer bis hierhin weiter gelesen hat und bisher nur Bahnhof verstanden hat, dem kann ich versichern, dass es so weiter geht. Für alle anderen versuche ich mich kürzer zu fassen.

Zu Administrationszwecke arbeitet man immer mit dem root-User auf dem Server. Ja ja, ich weiß. Man sollte sich zu erst immer mit einem weniger privilegierten User auf dem System anmelden und dann zum root-User switchen, aber wer macht das schon? Wie auch immer. Da jeder Depp und jeder angehende Hacker aus Russland von der Faulheit vieler weiß, wird er versuchen, an das Passwort per Brute-Force Methode zu  kommen. Damit das nicht so schnell geschieht, sollte man ein kryptischen Passwort mit mehr als 8 Stellen haben. Nachteil ist, dass es einmal schwer zu merken und noch schwieriger ist, es einzutippen.

Die andere Möglichkeit ist, dass man per Public-Key-Authentifizierung sich an den Server anmeldet. Auf dem Server ist ein sogenannter privater Schlüssel hinterlegt und auf dem System, von dem man sich anmelden möchte, ist ein öffentlicher Schlüssel. Die Methode ist sehr sicher, hat aber einen entscheidenden Nachteil. Wenn man mal unterwegs ist, keinen Laptop mit seinem öffentlichen Schlüssel dabei und auch den USB-Stick wo der Schlüssel auch drauf ist, nicht in der Tasche hat, aber trotzdem dringend auf den Server zugreifen muss, dann ist man ganz schön gekniffen und wünscht sich die Sache mit dem Passwort zurück.

Hier kommt nun der Google Authenticator ins Spiel. Google hat vor einiger Zeit eine App für das Apple iPhone und für Android Smartphone herausgegeben, die im 30 Sekunden Takt einen sechsstelligen Code generiert. Mit der App und dem Code kann man seinen Code bei Google weiter absichern. Man ist dann gezwungen nicht nur seinen Usernamen und das Passwort bei der Anmeldung bei Google anzugeben, sondern auch diese, sich dauernd ändernde, sechsstellige Ziffer.

Ihr seid sicherlich schon selbst darauf gekommen, aber ja, man kann dieses Mechanismus auch für seinen eigenen Server nutzen. Dann meldet man sich auf dem Server mit dem Usernamen, Passwort und dem Google Authenticator an. Stimmt alles drei nicht überein, gelangt man nicht auf den Server.

Das Einrichten des Google Authenticator ist relativ einfach. Einmal installiert man Authenticator App auf sein Smartphone. Den Link dazu hänge ich an das Ende des Artikels.

Dann geht es auch schon auf dem Server weiter. Dort installiert man den Google Authenticator indem man per git den Code aus dem Reposittory holt.

1
git clone https://code.google.com/p/google-authenticator/

Nachdem das relativ schnell geschehen ist, wechselt man in das neue Verzeichnis und kompiliert die Sourcen mit:

1
make install

Anschließend fügt man die folgende Zeile in seine pam.d Konfiguration ein:

1
auth required pam_google_authenticator.so

Bei einem Gentoo System in der Datei /etc/pam.d/system-remote-login direkt nach

1
auth include system-login

Bei einem Ubuntu Server in die Datei /etc/pam.d/common-auth ganz am Ende. Weiter muss darauf geachtet werden, dass in der Konfiguration /etc/ssh/sshd_config die Zeile für die Challenge Response Authentication auf „yes“ steht, also wie hier.

1
ChallengeResponseAuthentication yes

Wenn dies nicht der Fall sein sollte, dann muss dies geändert werden und der SSHd neu gestartet werden.

Wenn dies alles geschehen ist, muss man noch den Authenticator auf dem Handy konfigurieren. Hierfür führt man auf dem Server noch

1
google-authenticator

auf dem Kommando-Zeile des Servers aus. Die Ausgabe, die man erhält, sollte man sich sicher weg speichern. In der Ausgabe ist auch ein Link enthalten. Diesen per Browser aufrufen und den QR-Code den man sieht mit der Google App auf dem Smartphone abscannen.

Nun kann man etwas ruhiger schlafen und falls man mal von irgendwo auf der Welt sich einloggen will, kann man dies nun mit dem Authenticator sicher machen.

Google Authenticator (AppStore Link) Google Authenticator
Hersteller: Google, Inc.
Freigabe: 4+
Preis: Gratis Download

1 Kommentar » Schreibe einen Kommentar

  1. Hallo,

    leider funktioniert das Ganze so nicht wirklich.
    Teste das Ganze gerade auf Debian Wheezy. Es wird für den User der denn Google Authenticator eingerichtet hat auch der Verification Key verlangt, User bei denen die Datei .google_authenticator noch fehlt, die es für ihren Account also noch nicht eingerichtet haben, können sich nun garnicht mehr einloggen.

Hinterlasse eine Antwort

Pflichtfelder sind mit * markiert.


Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

eMail-Benachrichtigung bei weiteren Kommentaren.
Auch möglich: Abo ohne Kommentar.