SSH-Schlüsselbasierte Authentifizierung konfigurieren

Red Hat Enterprise LinuxBeginner
Jetzt üben

Einführung

In dieser Herausforderung werden Sie die schlüsselbasierte Authentifizierung für SSH konfigurieren, die eine sicherere Alternative zur herkömmlichen Anmeldung mit Passwort darstellt. Sie werden ein öffentlich-privates Schlüsselpaar generieren, den öffentlichen Schlüssel auf dem Server autorisieren und den SSH-Dienst so konfigurieren, dass Verbindungen mittels Schlüssel zulässig sind. Dies ermöglicht Ihnen die Anmeldung am SSH-Server ohne Passworteingabe, was sowohl die Sicherheit als auch den Komfort erhöht.

Öffentlich-privates Schlüsselpaar generieren

Der erste Schritt besteht darin, ein kryptografisches Schlüsselpaar zu erstellen. Dieses Paar besteht aus einem privaten Schlüssel, den Sie unbedingt geheim halten müssen, und einem öffentlichen Schlüssel, den Sie auf dem Server hinterlegen, um den Zugriff zu autorisieren.

Aufgaben

  • Generieren Sie ein neues RSA-Schlüsselpaar mit dem Befehl ssh-keygen.

Anforderungen

  • Wechseln Sie zum Benutzerkonto testuser, bevor Sie das Schlüsselpaar erstellen.
  • Führen Sie die Generierung als Benutzer testuser aus.
  • Verwenden Sie den Standard-Speicherort, wenn Sie dazu aufgefordert werden (/home/testuser/.ssh/id_rsa).
  • Legen Sie keine Passphrase für den privaten Schlüssel fest (drücken Sie einfach die Eingabetaste bei der Abfrage).

Erste Schritte

Wechseln Sie zunächst zum Benutzerkonto testuser:

su - testuser
## Password: testuser123

Beispiel

Nachdem Sie das Schlüsselpaar generiert haben, können Sie den Inhalt des Verzeichnisses ~/.ssh auflisten, um Ihre neuen Schlüssel zu sehen.

$ ls -l ~/.ssh
total 8
-rw------- 1 testuser testuser 3401 Aug 19 03:49 id_rsa
-rw-r--r-- 1 testuser testuser  759 Aug 19 03:49 id_rsa.pub

Die Datei id_rsa ist Ihr privater Schlüssel, und id_rsa.pub ist Ihr öffentlicher Schlüssel.

✨ Lösung prüfen und üben

Öffentlichen Schlüssel autorisieren und SSH-Server konfigurieren

Da Sie nun über ein Schlüsselpaar verfügen, müssen Sie den Server konfigurieren. Dies umfasst zwei wesentliche Schritte: Das Hinzufügen Ihres öffentlichen Schlüssels zur Liste der autorisierten Schlüssel und die Sicherstellung, dass der SSH-Dienst so eingestellt ist, dass er die schlüsselbasierte Authentifizierung akzeptiert.

Voraussetzungen

Stellen Sie sicher, dass Sie weiterhin als testuser angemeldet sind. Falls nicht, wechseln Sie erneut zum Konto:

su - testuser
## Password: testuser123

Aufgaben

  • Kopieren Sie Ihren öffentlichen Schlüssel in die Datei ~/.ssh/authorized_keys.
  • Setzen Sie die korrekten Dateiberechtigungen für ~/.ssh/authorized_keys.
  • Bearbeiten Sie die Konfigurationsdatei des SSH-Servers (/etc/ssh/sshd_config), um die Authentifizierung per öffentlichem Schlüssel zu aktivieren.
  • Laden Sie den SSH-Dienst neu, um die Änderungen zu übernehmen.

Anforderungen

  • Die Datei ~/.ssh/authorized_keys muss erstellt werden und den Inhalt Ihres öffentlichen Schlüssels (~/.ssh/id_rsa.pub) enthalten.
  • Die Berechtigungen für ~/.ssh/authorized_keys müssen auf 600 gesetzt sein.
  • In der Datei /etc/ssh/sshd_config muss die Option PubkeyAuthentication einkommentiert und auf yes gesetzt sein.
  • Die Konfiguration des SSH-Dienstes muss mit dem Befehl sudo pkill -HUP sshd neu geladen werden.

Hinweise

  • Sie können den Befehl cat zusammen mit der Ausgabeumleitung (>>) verwenden, um den Schlüssel zur Datei authorized_keys hinzuzufügen.
  • Verwenden Sie den Befehl chmod, um die Dateiberechtigungen anzupassen.
  • Der Benutzer testuser verfügt über sudo-Rechte, um die Datei /etc/ssh/sshd_config zu bearbeiten und den sshd-Dienst neu zu laden.
  • Da systemctl in dieser Container-Umgebung nicht verfügbar ist, nutzen Sie pkill, um das Signal HUP an den sshd-Prozess zu senden, wodurch dieser seine Konfiguration neu einliest.

Beispiel

Nach Abschluss dieser Schritte sollten Sie in der Lage sein, sich per SSH am localhost anzumelden, ohne nach einem Passwort gefragt zu werden.

$ ssh testuser@localhost "echo Login successful"
Login successful
✨ Lösung prüfen und üben

Zusammenfassung

In dieser Herausforderung haben Sie gelernt, wie Sie die SSH-Sicherheit durch die Konfiguration der schlüsselbasierten Authentifizierung verbessern. Sie haben ein öffentlich-privates Schlüsselpaar erstellt, den öffentlichen Schlüssel auf dem Server durch Eintrag in die Datei authorized_keys autorisiert und die SSH-Serverkonfiguration angepasst, um diese sichere Authentifizierungsmethode zu aktivieren. Mit dem Abschluss dieser Aufgabe haben Sie eine grundlegende Fertigkeit für die sichere Verwaltung von Remote-Systemen erworben.