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.
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.
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.
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.
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
Comments are closed.