Website-Suche

So richten Sie die Zwei-Faktor-Authentifizierung für SSH unter Linux ein


Standardmäßig verwendet SSH bereits eine sichere Datenkommunikation zwischen Remote-Computern. Wenn Sie Ihren SSH-Verbindungen jedoch eine zusätzliche Sicherheitsebene hinzufügen möchten, können Sie einen Google Authenticator hinzufügen (< Modul zur starken>Zwei-Faktor-Authentifizierung, mit dem Sie beim Herstellen einer Verbindung mit SSH-Servern einen zufälligen Einmalkennwort-Verifizierungscode (TOTP) eingeben können. Beim Herstellen der Verbindung müssen Sie den Bestätigungscode von Ihrem Smartphone oder PC eingeben.

Der Google Authenticator ist ein Open-Source-Modul, das Implementierungen von von Google entwickelten Verifizierungstoken mit einmaligen Passcodes (TOTP) enthält.

Es unterstützt mehrere mobile Plattformen sowie PAM (Pluggable Authentication Module). Diese einmaligen Passcodes werden mithilfe offener Standards generiert, die von der OATH Initiative für offene Authentifizierung erstellt wurden.

In diesem Artikel zeige ich Ihnen, wie Sie SSH für die Zwei-Faktor-Authentifizierung unter RedHat-basierten und Debian-basierten Linux-Distributionen wie Fedora, CentOS Stream, Rocky Linux und AlmaLinux einrichten und konfigurieren. Ubuntu, Debian und Mint.

Google Authenticator unter Linux installieren

Öffnen Sie den Computer, auf dem Sie die Zwei-Faktor-Authentifizierung einrichten möchten, und installieren Sie die folgenden PAM-Bibliotheken zusammen mit den Entwicklungsbibliotheken, die erforderlich sind, damit das PAM-Modul ordnungsgemäß mit dem < arbeitetGoogle Authenticator-Modul.

Installieren Sie auf RedHat-basierten Systemen das Paket „pam-devel“ mit dem folgenden yum-Befehl.

yum install google-authenticator -y

Installieren Sie auf Debian-basierten Systemen das Paket „libpam0g-dev“ mit dem folgenden apt-Befehl.

sudo apt install libpam-google-authenticator -y

Generieren Sie Google-Authentifizierungstoken

Sobald Sie den Befehl „google-authenticator“ ausführen, werden Ihnen eine Reihe von Fragen angezeigt.

google-authenticator

Geben Sie in den meisten Situationen einfach „y“ (ja) als Antwort ein. Wenn etwas schief geht, können Sie den Befehl „google-authenticator“ erneut eingeben, um die Einstellungen zurückzusetzen.

  • Möchten Sie, dass Authentifizierungstoken zeitbasiert sind (j/n) y?

Nach dieser Frage erhalten Sie Ihren „geheimen Schlüssel“ und „Notfallcodes“. Notieren Sie sich diese Details irgendwo. Den „geheimen Schlüssel“ benötigen wir später, um die Google Authenticator-App einzurichten.

google-authenticator

Do you want authentication tokens to be time-based (y/n) y
Warning: pasting the following URL into your browser exposes the OTP secret to Google:
  https://www.google.com/chart?chs=200x200&chld=M|0&cht=qr&chl=otpauth://totp/root@tecmint%3Fsecret%3DCYZF2YF7HFGX55ZEPQYLHOO5JM%26issuer%3Dtecmint
Failed to use libqrencode to show QR code visually for scanning.
Consider typing the OTP secret into your app manually.
Your new secret key is: CYZF2YF7HFGX55ZEPQYLHOM
Enter code from app (-1 to skip): -1 Code confirmation skipped Your emergency scratch codes are: 83714291 53083200 80975623 57217008 77496339

Folgen Sie als Nächstes dem Einrichtungsassistenten und geben Sie in den meisten Fällen die Antwort als „y“ (ja) ein, wie unten gezeigt.

Do you want me to update your "/root/.google_authenticator" file (y/n) y Do you want to disallow multiple uses of the same authentication token? This restricts you to one login about every 30s, but it increases your chances to notice or even prevent man-in-the-middle attacks (y/n) y By default, tokens are good for 30 seconds and in order to compensate for possible time-skew between the client and the server, we allow an extra token before and after the current time. If you experience problems with poor time synchronization, you can increase the window from its default size of 1:30min to about 4min. Do you want to do so (y/n) y If the computer that you are logging into isn't hardened against brute-force login attempts, you can enable rate-limiting for the authentication module. By default, this limits attackers to no more than 3 login attempts every 30s. Do you want to enable rate-limiting (y/n) y

Konfigurieren von SSH für die Verwendung von Google Authenticator unter Linux

Öffnen Sie die PAM-Konfigurationsdatei „/etc/pam.d/sshd“ und fügen Sie die folgende Zeile am Ende der Datei hinzu.

auth required pam_google_authenticator.so nullok
auth required pam_permit.so

Öffnen Sie als Nächstes die SSH-Konfigurationsdatei „/etc/ssh/sshd_config“ und scrollen Sie nach unten, um die Zeile mit der Aufschrift zu finden.

ChallengeResponseAuthentication no

Ändern Sie es in „ja“. Es wird also so.

ChallengeResponseAuthentication yes

Starten Sie abschließend den SSH-Dienst neu, um neue Änderungen zu übernehmen.

systemctl restart sshd
Or
sudo systemctl restart sshd

Konfigurieren der Google Authenticator-App

Starten Sie die Google Authenticator-App auf Ihrem Smartphone. Drücken Sie + und wählen Sie „Einen Setup-Schlüssel eingeben“. Wenn Sie diese App nicht haben, können Sie die Google Authenticator-App herunterladen und auf Ihren Android/iPhone/Blackberry-Geräten installieren.

Fügen Sie Ihr Konto „Name“ hinzu und geben Sie den zuvor generierten „geheimen Schlüssel“ ein.

Es wird ein Einmalpasswort (Bestätigungscode) generiert, das sich ständig alle 30 Sekunden auf Ihrem Telefon ändert.

Versuchen Sie nun, sich über SSH anzumelden. Sie werden aufgefordert, einen Google Authenticator-Code (Bestätigungscode) und ein Passwort einzugeben > wann immer Sie versuchen, sich über SSH anzumelden. Sie haben nur 30 Sekunden Zeit, diesen Bestätigungscode einzugeben. Wenn Sie ihn verpassen, wird ein neuer Bestätigungscode generiert.

login as: tecmint
Access denied
Using keyboard-interactive authentication.
Verification code:
Using keyboard-interactive authentication.
Password:
Last login: Tue Apr 23 13:58:29 2022 from 172.16.25.125
[root@tecmint ~]#

Wenn Sie kein Smartphone haben, können Sie auch ein Firefox-Add-on namens Authenticator verwenden, um eine Zwei-Faktor-Authentifizierung durchzuführen.

Wichtig: Die Zwei-Faktor-Authentifizierung funktioniert mit passwortbasiertem SSH-Login. Wenn Sie eine SSH-Sitzung mit privatem/öffentlichem Schlüssel verwenden, wird die Zwei-Faktor-Authentifizierung ignoriert und Sie werden direkt angemeldet.