SSH Login mit Two-Factor Authentication

Immer öfter verwenden Dienste die sogenannte Two-Factor Authentication um die Benutzerautorisierung sicherer zu gestalten. Hierbei wird neben der Eingabe eines Passworts ein zusätzlicher Code verlangt, der für jeden Login neu generiert wird. Diese Methode kann man auch nutzen um sich auf einem SSH Server einzuloggen. Zum generieren der Codes wird der Google Authenticator verwendet (benötigt kein Googlekonto und ist Open Source).

Auf dem Server wird das Google Authenticator PAM Modul benötigt. Bei Ubuntu kann dieses direkt aus den offiziellen Paketquellen installiert werden. Wenn die verwendete Linuxdistribution kein Paket zur Verfügung stellt kann man den Code bei Google Code bekommen und selbst kompilieren.

Unter Ubuntu wird das Modul einfach mit

sudo apt-get install libpam-google-authenticator

installiert. Anschließend muss dieses noch konfiguriert und aktiviert werden. Zuerst verbindet man sich mit dem SSH-Server und führt

google-authenticator

aus. Damit wird ein Schlüssel generiert, welchen man alphanumerisch und als QR-Code erhält. Außerdem erhält man fünf Notfallcodes, welche man sich unbedingt notieren sollte. Mit diesen Codes kann man sich einloggen, wenn man sein Mobiltelefon mit dem Authenticator verliert.

google-authenticator-code
Am einfachsten lässt sich der Google Authenticator einrichten wenn man den QR-Code mit dem Telefon scannt. Alternativ kann der „secret key“ auch von Hand eingetragen werden.

Screenshot-Google-Authenticator

Die anschließende Frage ob das „~/.google_authenticator“ File aktualisiert werden soll mit „Y“ beantworten. Nun werden einige Fragen zur Konfiguration und zur Sicherheit gestellt. Diese gemäß den eigenen Wünschen mit Ja oder Nein beantworten.

google-authenticator-config

Wenn man sich mit verschiedenen Benutzern via SSH einloggen und die Zwei-Faktor Authentifizierung verwenden möchte, muss diese Prozedur mit jedem User wiederholt werden.

Nun muss die Zwei-Faktor Authentifizierung noch aktiviert werden. Dazu muss die Datei /etc/pam.d/sshd geöffnet werden mit

sudo nano /etc/pam.d/sshd

und folgende Zeile hinzugefügt werden:

auth required pam_google_authenticator.so

Jetzt die Datei speichern und schließen.

Nun die /etc/ssh/sshd_config öffnen.

sudo nano /etc/ssh/sshd_config

Hier muss nach der Zeile ChallengeResponseAuthentication gesucht werden und diese von no zu yes geändert werden. Falls die Zeile nicht existiert, kann sie einfach hinzugefügt werden.

challengeresponseauth

Zum Schluss muss nur noch der SSH Dienst neu gestartet werden und die Zwei-Faktor Authentifizierung ist beim nächsten Login aktiv

sudo service ssh restart

2factor-logingoogle-auth-code


Creative Commons Lizenzvertrag
Dieser Artikel ist lizenziert unter einer Creative Commons Namensnennung 3.0 Deutschland Lizenz.


 

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.