Zurück zum Blog

Konfiguration Ihres Linux-Servers zur Verwendung der SSH-schlüsselbasierten Authentifizierung

Konfiguration Ihres Linux-Servers zur Verwendung der SSH-schlüsselbasierten Authentifizierung

SSH auf einem Linux-Server

SSH, auch bekannt als Secure Shell, ist ein Protokoll, das verwendet werden kann, um sich mit einem Server zu verbinden und zu kommunizieren. Sie können sich mit Ihrem Linux-Server verbinden für eine Terminal-Sitzung über dieses verschlüsselte Protokoll. Wenn Sie einen OpenSSH-Server verwenden, gibt es primär zwei verschiedene Möglichkeiten für den Authentifizierungsprozess. Die erste ist Ihre standardmäßige passwortbasierte Authentifizierung. Hier verwenden Sie einfach Ihre Benutzername- und Passwort-Anmeldedaten, um Zugriff auf Ihr Konto zu erhalten. Der andere Weg besteht darin, Ihren Linux-Server für die SSH-schlüsselbasierte Authentifizierung einzurichten.

In dieser Anleitung konzentrieren wir uns darauf, wie Sie Ihren Linux-Server so konfigurieren können, dass SSH-Schlüssel als primäres Authentifizierungsmittel verwendet werden. Wir werden auch besprechen, warum SSH-Schlüssel oft gegenüber dem üblichen Passwortschutz-Mechanismus bevorzugt werden.

Was sind SSH-Schlüssel?

SSH-Schlüssel ähneln den Anmeldedaten, die Sie verwenden würden, um sich bei Ihrem Konto auf dem Server anzumelden. Anstatt Ihren Benutzernamen und Ihr Passwort einzugeben, verwenden Sie das SSH-Schlüsselpaar, das ebenfalls ein Zugangsdaten-Set ist. Obwohl die Schlüssel kryptografisch sind, müssen Sie sie als Authentifizierungsdaten behandeln, da dies der Zweck ist, dem sie dienen.

Ein typischer SSH-Schlüssel besteht aus zwei Teilen: einem autorisierten Schlüssel und einem Identitätsschlüssel. Der autorisierte Schlüssel ist der öffentliche Schlüssel, der in Kombination mit Ihrem privaten Identitätsschlüssel funktioniert, um Ihnen Kontozugriff zu gewähren. Der öffentliche Schlüssel befindet sich auf dem Remote-Server, auf dem Sie sich mit SSH anmelden möchten, und verbleibt in der Datei ~/.ssh/authorized_keys, die Ihrem Benutzerkonto zugeordnet ist. Identitätsschlüssel dienen dazu, Ihre Identität als korrekter Benutzer zu verifizieren, um sicherzustellen, dass nur autorisiertes Personal auf das jeweilige Konto zugreifen kann. Zusammenfassend werden diese Schlüssel als Benutzerschlüssel bezeichnet, da sie die Identität des Benutzers authentifizieren. Sobald der Server in der Lage ist, beide Schlüssel zu verifizieren, wird eine Shell-Sitzung initiiert, um Ihre Befehle auszuführen.

Sie haben auch Host-Schlüssel und Sitzungsschlüssel. Das Protokoll authentifiziert den lokalen Computer, das System oder den Server mithilfe des Host-Schlüssels. Sitzungsschlüssel helfen dabei, den Datenstrom über die Verbindung zu verschlüsseln. Dies macht Ihre Sitzung und die entsprechenden Aktivitäten viel sicherer.

SSH-Schlüssel gegenüber Passwortschutz

Der Hauptgrund, warum die SSH-schlüsselbasierte Authentifizierung dem Passwortschutz vorzuziehen ist, liegt darin, dass letzterer Sie anfällig für Cyberangriffe machen kann. Die meisten Personen verwenden keine extrem komplexen Passwörter, damit sie sich beim Anmelden an sie erinnern können. Infolgedessen entsteht dadurch eine Schwachstelle. Viele Angreifer wenden Gewalt an, um das relativ einfache Passwort zu knacken und in das Konto einzudringen. Dies ist heutzutage aufgrund von Automatisierung und fortschrittlichen Hacking-Technologien besonders einfach geworden.

SSH-Schlüssel hingegen bieten eine weitaus sicherere Möglichkeit, Zugriff auf Ihr Konto zu erhalten. Wie bereits erwähnt, verwendet diese Methode einen öffentlichen und einen privaten Schlüssel, um die Identität eines Clients zu authentifizieren. Während Sie den öffentlichen Schlüssel mit jedem teilen können, müssen Sie den privaten Schlüssel geheim halten. Wenn sie miteinander gekoppelt sind, entschlüsselt der öffentliche Schlüssel den privaten, um Ihre Identität zu authentifizieren. Darüber hinaus können Sie den Schutz erhöhen, indem Sie dem Schlüsselpaar eine Passphrase hinzufügen. Wir werden im weiteren Verlauf der Anleitung noch näher auf die Passphrase eingehen. Doch selbst ohne Passphrase ist Ihr privater SSH-Schlüssel auf Ihrem lokalen Computer extrem sicher aufbewahrt. Das Netzwerk kann niemals direkt auf den Schlüssel zugreifen, der sich in einem eingeschränkten Verzeichnis befindet und mit eingeschränkten Berechtigungen versehen ist.

SSH-Schlüssel generieren

Um Ihr SSH-Schlüsselpaar zu generieren, müssen Sie die OpenSSH-Toolsuite durchsuchen und ssh-keygen ausfindig machen. Dies ist ein spezielles Hilfsprogramm, mit dem Sie ein SSH-Schlüsselpaar mit einer Größe von etwa 2048 Bit generieren können. Beginnen Sie mit der Ausführung dieses Befehls:

Dies führt zu folgender Meldung:

Die Meldung generiert einen privaten Schlüssel namens id_rsa und einen öffentlichen Schlüssel namens id_rsa.pub. An dieser Stelle können Sie wählen, wo Sie den Schlüssel ablegen möchten. Wir empfehlen, den Standardspeicherort beizubehalten, indem Sie die Eingabetaste drücken. Wenn Sie den Standardspeicherort beibehalten, wird sichergestellt, dass der Server die Schlüssel automatisch findet und überprüft, wann immer Sie sich mit diesem System anmelden. Der Standardspeicherort ist das Verzeichnis ~/.ssh im Home-Verzeichnis. Wenn Sie einen anderen Ort bevorzugen, geben Sie den Pfad ein.

Ältere SSH-Schlüssel überschreiben

Es ist wichtig zu beachten, dass Sie jeweils nur ein SSH-Schlüsselpaar auf Ihrem System haben können. Das bedeutet, wenn Sie zuvor ein Schlüsselpaar auf dem System generiert und gespeichert haben, wird die folgende Meldung angezeigt:

Um mit dem Erstellen und Speichern Ihres neuen SSH-Schlüsselpaars fortzufahren, müssen Sie das vorhandene löschen. Denken Sie daran: Wenn Sie den bereits auf der Festplatte gespeicherten Schlüssel überschreiben, können Sie ihn nicht mehr zur Authentifizierung verwenden. Dies ist ein unumkehrbarer Vorgang. Stellen Sie daher sicher, dass Sie absolut sicher sind, dass Sie das alte Schlüsselpaar überschreiben möchten.

Festlegen einer Passphrase

Sobald Sie die Schlüssel im Verzeichnis eingerichtet haben, werden Sie gefragt, ob Sie eine Passphrase eingeben möchten:

Die Passphrase ist optional – Sie können sie überspringen. Sie bietet jedoch eine zusätzliche Sicherheitsebene für Ihren privaten Schlüssel, indem sie ihn auf der Festplatte verschlüsselt. Wenn Sie sich für die Verwendung einer Passphrase entscheiden, müssen Sie diese jedes Mal korrekt eingeben, wenn Sie versuchen, sich mit diesem SSH-Schlüsselpaar anzumelden:

Schließlich sollten Sie nun über Ihre SSH-Schlüssel verfügen, mit denen Sie den Client authentifizieren können.

Einbetten Ihres SSH-Schlüssels in Ihr Server-Konto

Bevor Sie die Schlüssel zur Authentifizierung verwenden, müssen Sie den öffentlichen Schlüssel auf dem Remote-Linux-Server einbetten. Als Nächstes zeigen wir Ihnen, wie Sie das beim Erstellen Ihres CloudSigma-Servers tun. Zuerst müssen Sie Ihren öffentlichen SSH-Schlüssel finden, damit Sie ihn kopieren und einfügen können. Wenn Sie die obige Methode zur Generierung Ihres SSH-Schlüsselpaars verwendet haben, finden Sie den öffentlichen Schlüssel, indem Sie Folgendes eingeben:

Dies führt dazu, dass der öffentliche SSH-Schlüssel wie folgt angezeigt wird:

Kopieren Sie diesen Wert, um ihn später zu verwenden. Wenn Sie einen Server mit CloudSigma erstellen, haben Sie die Möglichkeit, einen SSH-Schlüssel hinzuzufügen, nachdem Sie die Servergröße und das OS-Image ausgewählt haben:

single server creation

Klicken Sie auf Hinzufügen und fügen Sie das Kopierte ein, um den SSH-Schlüssel in Ihren Server einzubetten. Dadurch verfügt Ihr Server bei jedem Booten bereits über den injizierten SSH-Schlüssel.

Kopieren eines öffentlichen Schlüssels auf einen bestehenden Server

Während die obige Methode beim Erstellen eines neuen Servers funktioniert, stellt sich die Frage: Ist es möglich, einen SSH-Schlüssel in einen bestehenden Server einzubetten? Die Antwort lautet Ja, und es gibt verschiedene Möglichkeiten, dies zu tun, je nachdem, welche Tools Ihnen zur Verfügung stehen.

Verwendung von SSH-Copy-ID

Dies ist der einfachste und unkomplizierteste Weg, einen öffentlichen Schlüssel zu kopieren. Alles, was Sie brauchen, ist das Dienstprogramm ssh-copy-id, das Sie in der Standard-OpenSSH-Suite finden. Bevor Sie diese Methode anwenden, stellen Sie jedoch sicher, dass die passwortbasierte Authentifizierung auf Ihrem Server aktiviert ist. Um den Schlüssel zu kopieren, wenden Sie die ssh-copy-id-Syntax an und geben dann den Remote-Host ein, mit dem Sie sich verbinden möchten. Sie müssen auch das Konto angeben, mit dem Sie sich verbinden. Sie müssen passwortbasierten Zugriff auf das Konto haben, damit Ihr Schlüssel an der richtigen Stelle kopiert wird. Der Befehl sollte wie folgt aussehen:

Dies kann dazu führen, dass eine Meldung wie die folgende auf Ihrem Bildschirm erscheint:

Dies geschieht in der Regel, wenn Sie sich zum ersten Mal mit diesem bestimmten Remote-Host verbinden. Es bedeutet lediglich, dass der Computer den Host nicht erkannt hat. Sie müssen nur „yes“ eingeben und die Eingabetaste drücken. Sobald Sie das tun, scannt das Tool das Konto, um Ihren öffentlichen Schlüssel zu finden. Sobald er gefunden wurde, werden Sie aufgefordert, Ihr Kontopasswort einzugeben:

Als Nächstes können Sie Ihr Passwort eingeben. Wenn Sie mit Ihrem Konto verbunden sind, kopiert das Tool den Inhalt des Schlüssels ~/.ssh/id_rsa.pub und fügt ihn unter authorized_keys im Verzeichnis ~/.ssh auf Ihrem Remote-Konto ein. Sie sehen dann die folgende Meldung:

Dies bedeutet, dass Sie Ihren öffentlichen Schlüssel erfolgreich auf Ihren bestehenden Remote-Server kopiert haben.

Using SSH

Dies ist eine eher herkömmliche Methode, um Ihren öffentlichen Schlüssel auf einen Server zu kopieren. Es ist ratsam, sie zu verwenden, wenn Sie keinen Zugriff auf das Tool ssh-copy-id haben. Auch hier müssen Sie einen passwortbasierten Zugriff auf Ihr Konto haben. Im Wesentlichen geben Sie den Inhalt des öffentlichen Schlüssels auf Ihrem Computer aus und übertragen ihn über die hergestellte SSH-Verbindung auf den Remote-Server. Der Befehl, den Sie zu diesem Zweck verwenden, sollte wie folgt aussehen:

Wie Sie sehen können, haben wir festgelegt, dass der Schlüssel in der Datei authorized_keys im Verzeichnis ~/.ssh auf dem Server abgelegt werden soll. Die Verwendung des Symbols >> stellt außerdem sicher, dass wir Schlüssel hinzufügen, anstatt sie zu überschreiben. Nach dem Ausführen des Befehls sehen Sie möglicherweise diese Meldung:

Ähnlich wie bei der vorherigen Meldung bedeutet dies, dass der Computer den Remote-Host nicht erkannt hat. Geben Sie „yes“ ein und drücken Sie die Eingabetaste, um fortzufahren. Nun geben Sie das Passwort des Kontos ein:

Sobald das Passwort verifiziert ist, wird der Schlüssel wie angegeben in eine Datei in Ihrem Benutzerkonto kopiert.

Manuell

Falls Sie keinen passwortbasierten Zugriff auf Ihr Konto auf dem Remote-Server haben, können Sie den öffentlichen Schlüssel manuell kopieren. Das Ziel besteht darin, den Wert in der Datei id_rsa.pub in die Datei ~/.ssh/authorized_keys auf Ihrem Remote-Gerät zu übertragen. Wie wir bereits wissen, können wir den Wert des id_rsa.pub-Schlüssels mit diesem Befehl anzeigen:

Der Inhalt Ihres öffentlichen SSH-Schlüssels wird wie folgt angezeigt:

Als Nächstes müssen Sie mit allen verfügbaren Mitteln Zugriff auf Ihr Konto auf dem Remote-Host erhalten. Wenn Sie angemeldet sind, überprüfen Sie, ob das Verzeichnis ~/.ssh vorhanden ist. Wenn nicht, können Sie den folgenden Befehl ausführen, um es zu erstellen:

Nun können Sie diesen Befehl verwenden, um den Inhalt der Datei id_rsa.pub zur Datei authorized_keys in diesem Verzeichnis ~/.ssh auf dem Remote-Server hinzuzufügen:

Anstatt „public_key_string“ in diesen Befehl einzugeben, müssen Sie den Inhalt des Schlüssels eingeben, den Sie zuvor durch Ausführen des Befehls cat ~/.ssh/id_rsa.pub extrahiert haben.

Authentifizierung mit Ihrem SSH-Schlüssel

Jetzt können Sie sich ganz einfach nur mit Ihren SSH-Schlüsseln in Ihr Konto einloggen. Das bedeutet, dass Sie kein Passwort mehr benötigen, um Zugriff auf Ihr Serverkonto zu erhalten. Sie verwenden die Anmeldedaten, die Sie normalerweise für die Anmeldung nutzen:

Dies kann dazu führen, dass die folgende Meldung angezeigt wird:

Machen Sie sich keine Sorgen, wenn Sie diese Meldung sehen. Sie bedeutet lediglich, dass das lokale System den Remote-Host nicht erkennen kann. Dies geschieht in der Regel, wenn Sie sich zum ersten Mal mit dem Host verbinden. Sie müssen lediglich „yes“ eingeben und die Eingabetaste drücken. Um auf einige der vorherigen Schritte zurückzukommen: Wenn Sie eine Passphrase eingerichtet haben, müssen Sie diese hier eingeben. Wenn nicht, werden Sie sofort nach der Authentifizierung der SSH-Schlüssel in Ihr Konto eingeloggt. Dadurch wird eine neue Shell-Sitzung über Ihr aktuelles Konto auf dem lokalen Computer geöffnet.

Wie deaktiviert man die Passwort-Authentifizierung auf Ihrem Server?

Da Sie nun wissen, wie Sie Ihre SSH-Schlüssel einrichten, müssen Sie die Passwort-Authentifizierung deaktivieren. Selbst wenn Sie die SSH-Schlüssel zur Authentifizierung verwenden können, sind Sie immer noch anfällig für Brute-Force-Angriffe, wenn Ihr Passwort-Authentifizierungsprozess aktiv ist. Bevor Sie den Passwort-Authentifizierungsmechanismus deaktivieren, stellen Sie sicher, dass die Konfiguration der SSH-schlüsselbasierten Authentifizierung für das Root-Konto auf dem Server gilt oder dass das konfigurierte Konto über Sudo-Zugriff verfügt. Der Grund für diese Bestätigung ist sicherzustellen, dass Sie den administrativen Zugriff auf das Konto behalten, selbst wenn Passwörter deaktiviert sind. Jetzt können Sie diesen SSH-Schlüssel verwenden, um sich bei Ihrem Serverkonto anzumelden. Der nächste Schritt besteht darin, die Konfigurationsdatei des SSH-Daemons zu öffnen:

Hier müssen Sie nach der folgenden Direktive suchen:

Sie müssen diese Zeile auskommentieren und den Wert wie folgt auf „no“ ändern:

Dadurch wird die passwortbasierte Authentifizierung deaktiviert. Speichern Sie die Datei einfach und schließen Sie sie, wenn Sie fertig sind. Schließlich müssen Sie Ihr Gerät neu starten, um die Änderungen zu übernehmen. Wenn Sie ein Ubuntu- oder Debian-Gerät verwenden, können Sie auch den folgenden Befehl verwenden, um den passwortbasierten Zugriff zu deaktivieren:

Um sicherzustellen, dass Ihr Daemon oder sshd auf CentOS- oder Fedora-Maschinen nur die SSH-basierte Authentifizierung auf dem Server zulässt, verwenden Sie den Befehl:

Fazit

Sobald Sie alle diese Schritte abgeschlossen haben, sollte die SSH-schlüsselbasierte Authentifizierung auf Ihrem Server konfiguriert sein und ausgeführt werden.  Jetzt können Sie sicher sein, dass Ihre Server sicher und geschützt sind!

Viel Spaß beim Computing!

author

Akshay Nagpal

Autor · CloudSigma

Preslav Dobrev ist ein kreativer Designer bei CloudSigma und konzentriert sich auf eine konsistente Unternehmensidentität durch traditionelle und innovative Marketingkanäle. Er versteht es meisterhaft, künstlerische Vision mit strategischem Marketing zu verbinden, um wirkungsvolle Markengeschichten zu schaffen.

Kommentare

Noch keine Kommentare. Schreiben Sie den ersten.