So sichern Sie SSH mit der Zwei-Faktor-Authentifizierung von Google Authenticator
Möchten Sie Ihren SSH-Server mit der benutzerfreundlichen Zwei-Faktor-Authentifizierung schützen? Google bietet die erforderliche Software, um das zeitbasierte Einmalkennwortsystem (TOTP) von Google Authenticator in Ihren SSH-Server zu integrieren. Sie müssen den Code von Ihrem Telefon eingeben, wenn Sie eine Verbindung herstellen.
Google Authenticator ruft Google nicht zu Hause an - die gesamte Arbeit wird auf Ihrem SSH-Server und auf Ihrem Telefon ausgeführt. Google Authenticator ist in der Tat vollständig Open Source, sodass Sie den Quellcode sogar selbst überprüfen können.
Installieren Sie Google Authenticator
Um die Authentifizierung mit mehreren Faktoren mit Google Authenticator zu implementieren, benötigen wir das Open-Source-Modul Google Authenticator PAM. PAM steht für Plug-In-Authentication-Modul - es ist eine Möglichkeit, verschiedene Authentifizierungsformen problemlos in ein Linux-System zu integrieren.
Ubuntus Software-Repositorys enthalten ein einfach zu installierendes Paket für das PAM-Modul von Google Authenticator. Wenn Ihre Linux-Distribution dafür kein Paket enthält, müssen Sie es von der Google Authenticator-Downloadseite in Google Code herunterladen und selbst kompilieren.
Führen Sie den folgenden Befehl aus, um das Paket unter Ubuntu zu installieren:
sudo apt-get install libpam-google-authenticator
(Dadurch wird nur das PAM-Modul auf unserem System installiert. Wir müssen es für SSH-Anmeldungen manuell aktivieren.)
Erstellen Sie einen Authentifizierungsschlüssel
Melden Sie sich als Benutzer an, mit dem Sie sich remote anmelden, und führen Sie das aus Google-Authenticator Befehl, um einen geheimen Schlüssel für diesen Benutzer zu erstellen.
Erlauben Sie dem Befehl, Ihre Google Authenticator-Datei zu aktualisieren, indem Sie j eingeben. Sie werden dann mit mehreren Fragen aufgefordert, mit denen Sie die Verwendung desselben temporären Sicherheitstokens einschränken, das Zeitfenster vergrößern können, für das Token verwendet werden können, und die Anzahl der zulässigen Zugriffsversuche beschränken, um Brachkraftversuche zu verhindern. Alle diese Optionen sind mit etwas Sicherheit für eine einfache Verwendung ausgestattet.
Google Authenticator zeigt Ihnen einen geheimen Schlüssel und mehrere "Notfall-Scratch-Codes" an. Notieren Sie sich die Emergency-Scratch-Codes an einem sicheren Ort - sie können jeweils nur einmal verwendet werden und sind für den Fall vorgesehen, dass Sie Ihr Telefon verlieren.
Geben Sie den geheimen Schlüssel in die Google Authenticator-App auf Ihrem Telefon ein (offizielle Apps sind für Android, iOS und Blackberry verfügbar). Sie können auch die Funktion zum Scannen von Barcodes verwenden. Rufen Sie die URL oben in der Befehlsausgabe auf, und Sie können einen QR-Code mit der Kamera Ihres Telefons scannen.
Sie haben jetzt einen ständig wechselnden Bestätigungscode auf Ihrem Telefon.
Wenn Sie sich remote als mehrere Benutzer anmelden möchten, führen Sie diesen Befehl für jeden Benutzer aus. Jeder Benutzer hat seinen eigenen geheimen Schlüssel und seine eigenen Codes.
Aktivieren Sie den Google Authenticator
Als Nächstes müssen Sie Google Authenticator für SSH-Anmeldungen benötigen. Öffnen Sie dazu das /etc/pam.d/sshd Datei auf Ihrem System (z. B. mit der Sudo Nano /etc/pam.d/sshd Befehl) und fügen Sie der Datei folgende Zeile hinzu:
Authentifizierung erforderlich pam_google_authenticator.so
Als nächstes öffnen Sie die / etc / ssh / sshd_config Datei, suchen Sie die ChallengeResponseAuthentication Zeile und ändern Sie es wie folgt:
ChallengeResponseAuthentication Ja
(Wenn die ChallengeResponseAuthentication Zeile ist noch nicht vorhanden, fügen Sie der Datei die obige Zeile hinzu.)
Starten Sie schließlich den SSH-Server neu, damit Ihre Änderungen wirksam werden:
Sudo-Dienst ssh Neustart
Sie werden aufgefordert, bei der Anmeldung über SSH sowohl Ihr Kennwort als auch Ihren Google Authenticator-Code einzugeben.